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.com
vs 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_url
dan site_url
akan 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 relative
protokol 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 blog
folder dalam root dari situs Anda.
home_url
=== site_url
==="www.example.com/blog"
Dalam hal ini www.example.com
adalah situs web utama, dan www.example.com/blog
merupakan 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 blog
folder. "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_url
dan site_url
harus 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 wordpress
server. direktori root untuk situs web Anda.
Jadi, pengguna akan mengetik www.example.com
untuk 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_url
dan
home_url
Pertama, saya perhatikan siteurl
dan home
simpan 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_options
table ->
`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_HOME
dan WP_SITEURL
pengaturan dengan menyisipkan baris-baris ini ke bagian atas wp-config.php
file 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 Address
dan Home Page Address
atau sesuatu yang lebih eksplisit seperti location of WordPress Site core files
dan 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.php
fileAnda, 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.