TLDR:
Dalam instalasi non-standar, Anda dapat menempatkan file WordPress di subdirektori dari root situs web Anda.
... dan masih memungkinkan pengunjung Anda ke pengunjung untuk mengakses "situs web" WordPress Anda dari URL Domain (root) situs Anda, tanpa menambahkan nama subdirektori:
(yaitu: www.example.comvs www.example.com/wordpress):
WP function | wp_options. | WP constant | what it represents | WP Settings Label | Example
-------------------------------------------------------------------------------------------------------------------------------------
`site_url()` | `siteurl` | `WP_SITEURL` | WordPress files location | WordPress Address | https://www.example.com/wordpress
`home_url()` | `home` | `WP_HOME` | browser address bar | Site Address | https://www.example.com
Di mana nilai konstanta WP lebih diutamakan daripada nilai wp_options / WP Settings.
Konfigurasi yang berbeda untuk WordPress
Di instalasi WordPress paling standar , home_urldan site_urlakan memiliki nilai yang sama.
Bagaimanapun, mereka mewakili dua hal yang berbeda.
Dalam instalasi non-standar , mereka mungkin memiliki nilai yang berbeda.
CATATAN: Saya meninggalkan protokol dalam jawaban saya agar lebih mudah dibaca.
Dalam posting ini, tambahkan SETIAP URL dengan:
https://, http://OR //
(kecuali aku termasuk sudah).
( //adalah relativeprotokol dan akan bekerja untuk salah satu / keduanya http://atau https://)
Instalasi Standar (termasuk Instalasi "Satu-Klik")
home_url: adalah halaman beranda situs web Anda (wordpress), seperti yang ditunjukkan pada bilah alamat pengguna.
site_url: adalah direktori tempat file wordpress Anda berada.
Instalasi WordPress 5 menit menginstal file wordpress kedua nilai ini akan sama - file wordpress akan diinstal dalam folder yang sama yang Anda ingin orang-orang gunakan untuk alamat situs web Anda, atau bagian wordpress (blog) dari situs web server Anda.
Contoh 1:
user mengakses blog Anda di: www.example.com,
file wordpress dipasang di: www.example.com, atau folder root dari situs server Anda.
home_url=== site_url==="www.example.com"
Contoh 2:
user mengakses blog Anda di: www.example.com/blog,
file wordpress dipasang di: www.example.com/blog, atau di blogfolder dalam root dari situs Anda.
home_url=== site_url==="www.example.com/blog"
Dalam hal ini www.example.comadalah situs web utama, dan www.example.com/blogmerupakan akar dari blog Anda.
Di sini blog Anda terpisah dari, dan berfungsi sebagai bagian dari, situs web utama Anda.
Dalam hal ini, situs web utama Anda tidak dikontrol, ditentukan, atau ditata oleh WordPress.
Hanya blog Anda. Semua url di blog Anda akan diproses olehwww.example.com/blog
Catatan: Dalam dokumentasi, "Situs / situs web Wordpress" (bukan hanya "situs / situs web") merujuk ke direktori tempat file WordPress Anda dipasang. Dalam hal ini, itu adalah www.example.com/blog- segalanya di dalam blogfolder. "Situs web WordPress", dalam skenario ini, tidak sama dengan domain Anda, root Anda, atau situs web utama Anda. Ini adalah bagian dari keseluruhan situs web Anda. Jenis seperti situs web di dalam situs web. Saya menyebutkan ini sebagai terminologi yang bisa tampak tidak jelas atau membingungkan, mengingat pengaturan khusus ini.
Konfigurasi Instalasi WordPress Alternatif
Memberikan WordPress Direktori Sendiri , bagian Method II (With URL change).
Sebagai contoh, banyak orang tidak ingin menyumbat folder root situs web mereka dengan semua file wordpress.
Mereka ingin menginstal wordpress di subdirektori, * tetapi memiliki "blog" atau "situs web WordPress" diakses seolah-olah file-file itu dipasang di root root server untuk situs web.
Ini terutama benar ketika WordPress digunakan untuk membangun dan menjalankan seluruh situs web yang bahkan tidak memiliki "blog".
Contoh 3:
user mengakses Anda "blog" di: www.example.com,
file wordpress dipasang di: www.example.com/wordpress, atau folder root dari situs server Anda.
home_url=== "www.example.com"
site_url==="www.example.com/wordpress"
(Catatan: konfigurasi ini tidak akan berfungsi "di luar kotak" hanya dengan mengubah nilai-nilai dari variabel-variabel ini. Ini memerlukan perubahan konfigurasi tambahan agar berfungsi dengan benar)
Lihat Memberikan WordPress Its Own Directory , bagian berjudul Method II (With URL change)untuk bagaimana melakukan ini.
Dalam hal ini home_urldan site_urlharus memiliki nilai yang berbeda.
Dalam pengaturan ini, Anda ingin situs web Anda berfungsi persis seperti jika file WordPress dipasang di direktori root server untuk situs web Anda ...
TAPI, untuk keperluan organisasi di server,
Anda sebenarnya memiliki file WordPress di folder yang disebut wordpressserver. direktori root untuk situs web Anda.
Jadi, pengguna akan mengetik www.example.comuntuk mendapatkan beranda WordPress Anda, bukanwww.example.com/wordpress
fungsi wordpress <--> variabel basis data <--> Wordpress Constant
Bagian ini mengasumsikan konfigurasi Contoh 3 di atas.
address bar url: www.example.com
file wordpress: / direktori wordpress
(Kasus-kasus lain sepele: Semua variabel / fungsi memegang / mengembalikan nilai yang sama.)
Cara mengatur nilai untuk
site_urldan
home_url
Pertama, saya perhatikan siteurldan homesimpan nilai yang dikembalikan oleh fungsi di atas
1) Biasanya Anda menetapkan nilai-nilai ini di panel backend / dashboard / admin
Settings -> General ->
siteurl WordPress: Alamat WordPress: https://www.example.com/wordpress
home Alamat Situs: https://www.example.com
(tidak termasuk trailing slash di sini - yang akan dikonfigurasi di tempat lain)
2) Atau, Anda menetapkan nilai-nilai ini di database WordPress Anda:
wp_optionstable ->
`options_name` | `options_value`
----------------------------------------------------
`siteurl` | `https://www.example.com/wordpress`
`home` | `https://www.example.com`
(tidak termasuk trailing slash di sini - yang akan dikonfigurasi di tempat lain)
3) Edit wp-config.php
Tentukan konstanta spesifik ini untuk menahan nilai-nilai Anda
Tentukan WP_HOMEdan WP_SITEURLpengaturan dengan menyisipkan baris-baris ini ke bagian atas wp-config.phpfile Anda :
define('WP_SITEURL','http://example.com/wordpress'); // wordpress core files
define('WP_HOME','http://example.com'); // address bar url
// ** MySQL settings - You can get this info from your web host ** //
...
(tidak termasuk trailing slash di sini - yang akan dikonfigurasi di tempat lain)
Referensi: WP_SITEURL dan WP_HOME
CATATAN: Ini membingungkan
(saya benar-benar berharap WordPress telah melabeli Pengaturan yang mirip dengan nama php mereka,
seperti Wordpress Site Addressdan Home Page Addressatau sesuatu yang lebih eksplisit seperti location of WordPress Site core filesdan browser url to access WordPress home page)
`WP_SITEURL` <--> `site_url()` <--> `siteurl` <--> Wordpress Address <--> /wordpress
`WP_HOME` <--> `home_url()` <--> `home` <--> Site Address <--> /
Sekarang Di sinilah rumit!
JIKA Anda mendefinisikan konstanta-konstanta itu dalamwp-config.phpfileAnda, tidak masalah nilai apa yang Anda miliki di halaman database / pengaturan Anda.
Bahkan, Anda tidak akan dapat mengubah nilai ini melalui bagian belakang (itu akan diklik). Anda masih dapat memodifikasi dengan mengedit database Anda, tetapi hal itu tidak akan berpengaruh pada situs Anda, sementara konstanta ada di file wp-config Anda.
File konfigurasi Anda tidak akan mengubah nilai dalam basis data Anda (atau dengan demikian halaman pengaturan Anda). Sebaliknya, nilai halaman basis data / pengaturan Anda akan diabaikan . Nilai-nilai di wp-config timpa atau didahulukan dari pengaturan basis data Anda.
Jadi ... untuk menyelesaikan (TLDR):
WP function | wp_options. | WP constant | what it represents | WP Settings Label | Example
-------------------------------------------------------------------------------------------------------------------------------------
`site_url()` | `siteurl` | `WP_SITEURL` | WordPress files location | WordPress Address | https://www.example.com/wordpress
`home_url()` | `home` | `WP_HOME` | browser address bar | Site Address | https://www.example.com
Di mana nilai konstanta WP lebih diutamakan daripada nilai wp_options / WP Settings.
Nilai catatan wp_options dan nilai Pengaturan WP adalah sama.
Mengedit satu, menurut definisi mengedit yang lain.
Ini hanya 2 cara berbeda untuk mengakses variabel yang sama.
Di sisi lain, Konstanta WordPress unik dan independen.
Secara internal, konstanta WordPress (PHP) menimpa rekan db mereka.
Jika konstanta didefinisikan dalam wp-config, itu tidak mengubah database.
Tetapi secara internal WordPress akan selalu lebih suka / menggunakan nilainya daripada db satu.