TLDR:
ในการติดตั้งที่ไม่ได้มาตรฐานคุณสามารถวางไฟล์ WordPress ในไดเรกทอรีย่อยของรูทเว็บไซต์ของคุณ
... และยังอนุญาตให้ผู้เยี่ยมชมของคุณสามารถเข้าถึง WordPress "เว็บไซต์" ของคุณจาก URL โดเมน (รูท) ของเว็บไซต์ของคุณโดยไม่ต้องใส่ชื่อไดเรกทอรีย่อย:
(เช่น: 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
โดยที่ค่าสำหรับค่าคงที่ WP จะมีความสำคัญเหนือกว่าค่าการตั้งค่า wp_options / WP
การกำหนดค่าที่แตกต่างกันสำหรับ WordPress
ในการติดตั้ง WordPress มาตรฐานมากที่สุดhome_url
และsite_url
จะมีค่าเท่ากัน
โดยไม่คำนึงถึงพวกเขาเป็นตัวแทนของสองสิ่งที่แตกต่าง
ในการติดตั้งที่ไม่ได้มาตรฐานอาจมีค่าแตกต่างกัน
หมายเหตุ:ฉันกำลังละทิ้งโพรโทคอลในคำตอบของฉันเพื่อให้อ่านง่ายขึ้น
ในโพสต์นี้ให้เตรียมตัวทุก URL ด้วย:
https://
, http://
หรือ//
(ยกเว้นว่าฉันได้รวมไว้แล้ว)
( //
เป็นrelative
โปรโตคอลและจะทำงานได้ทั้ง / ทั้งสองhttp://
หรือhttps://
)
การติดตั้งแบบมาตรฐาน (รวมถึงการติดตั้ง "คลิกเดียว")
home_url
: เป็นหน้าแรกของเว็บไซต์ (wordpress) ของคุณตามที่ระบุในแถบที่อยู่ของผู้ใช้
site_url
: เป็นไดเรกทอรีที่ไฟล์ wordpress ของคุณอยู่
WordPress ติดตั้ง 5 นาทีติดตั้งไฟล์เวิร์ดเพรสทั้งสองค่าจะเหมือนกัน - ไฟล์เวิร์ดเพรสจะถูกติดตั้งในโฟลเดอร์เดียวกันกับที่คุณต้องการให้คนอื่นใช้เว็บไซต์ของคุณหรือส่วนเวิร์ดเพรส (บล็อก) ของเว็บไซต์เซิร์ฟเวอร์ของคุณ
ตัวอย่างที่ 1:
ผู้ใช้เข้าถึงบล็อกของคุณที่: www.example.com
,
ไฟล์ wordpress ที่ติดตั้งที่: www.example.com
หรือโฟลเดอร์รูทของเว็บไซต์เซิร์ฟเวอร์ของคุณ
home_url
=== site_url
==="www.example.com"
ตัวอย่างที่ 2:
ผู้ใช้เข้าถึงบล็อกของคุณที่: www.example.com/blog
,
ไฟล์ wordpress ที่ติดตั้งที่: www.example.com/blog
หรือในblog
โฟลเดอร์ภายในรูทของเว็บไซต์ของคุณ
home_url
=== site_url
==="www.example.com/blog"
ในกรณีนี้www.example.com
คือเว็บไซต์หลักและwww.example.com/blog
เป็นรากฐานของบล็อกของคุณ
ที่นี่บล็อกของคุณถูกแยกออกจากและทำงานเป็นส่วนย่อยของเว็บไซต์หลักของคุณ
ในกรณีนี้เว็บไซต์หลักของคุณไม่ได้ควบคุมกำหนดหรือกำหนดสไตล์โดย WordPress
แค่บล็อกของคุณคือ URL ทั้งหมดในบล็อกของคุณจะถูกดำเนินการโดยwww.example.com/blog
หมายเหตุ: ในเอกสารประกอบ "เว็บไซต์ WordPress / เว็บไซต์" (ตรงข้ามกับ "ไซต์ / เว็บไซต์") หมายถึงไดเรกทอรีที่ติดตั้งไฟล์ WordPress ของคุณ ในกรณีนี้มันคือwww.example.com/blog
- ทุกอย่างภายในblog
โฟลเดอร์ "เว็บไซต์ WordPress" ในสถานการณ์นี้ไม่เหมือนกับโดเมนของคุณรูทหรือเว็บไซต์หลักของคุณ มันเป็นส่วนย่อยของเว็บไซต์โดยรวมของคุณ ประเภทของเว็บไซต์ในเว็บไซต์ ฉันพูดถึงสิ่งนี้เนื่องจากคำศัพท์สามารถดูเหมือนไม่ชัดเจนหรือสับสนเนื่องจากการตั้งค่านี้โดยเฉพาะ
การกำหนดค่าการติดตั้ง WordPress สำรอง
ให้ WordPress ไดเรกทอรีของตัวเองMethod II (With URL change)
ส่วนที่
ตัวอย่างเช่นหลายคนไม่ต้องการอุดตันรูทโฟลเดอร์ของเว็บไซต์ด้วยไฟล์ wordpress ทั้งหมด
พวกเขาต้องการติดตั้งเวิร์ดเพรสในไดเรกทอรีย่อย * แต่มีการเข้าถึง "บล็อก" หรือ "เว็บไซต์ WordPress" ราวกับว่าไฟล์ถูกติดตั้งในรูทของรูทเซิร์ฟเวอร์สำหรับเว็บไซต์
นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งเมื่อ WordPress ใช้สร้างและเรียกใช้เว็บไซต์ทั้งหมดที่ไม่มีแม้แต่ "บล็อก"
ตัวอย่างที่ 3:
ผู้ใช้เข้าถึง "บล็อก" ของคุณที่: www.example.com
,
ไฟล์ wordpress ติดตั้งที่: www.example.com/wordpress
หรือโฟลเดอร์รูทของเว็บไซต์เซิร์ฟเวอร์ของคุณ
home_url
=== "www.example.com"
site_url
==="www.example.com/wordpress"
(หมายเหตุ: การกำหนดค่านี้จะไม่ทำงาน "นอกกรอบ" เพียงแค่เปลี่ยนค่าของตัวแปรเหล่านี้มันต้องการการเปลี่ยนแปลงการกำหนดค่าเพิ่มเติมเพื่อให้ทำงานได้อย่างถูกต้อง)
ดูที่การให้ WordPress ของตนเองเป็นไดเรกทอรีส่วนที่มีชื่อว่าMethod II (With URL change)
วิธีการทำ
ในกรณีนี้home_url
และsite_url
ควรเก็บค่าที่แตกต่าง
ในการตั้งค่านี้คุณต้องการให้เว็บไซต์ของคุณทำงานตรงเช่นถ้าไฟล์ WordPress ถูกติดตั้งในไดเรกทอรีรากของเซิร์ฟเวอร์สำหรับเว็บไซต์ของคุณ ...
แต่สำหรับวัตถุประสงค์ขององค์กรบนเซิร์ฟเวอร์
คุณจริงมีไฟล์เวิร์ดเพรสของคุณในโฟลเดอร์ที่เรียกว่าwordpress
ในเซิร์ฟเวอร์ ไดเรกทอรีรากสำหรับเว็บไซต์ของคุณ
ดังนั้นผู้ใช้จะพิมพ์www.example.com
เพื่อรับโฮมเพจ WordPress ของคุณแทนwww.example.com/wordpress
ฟังก์ชัน wordpress <--> ตัวแปรฐานข้อมูล <--> Wordpress Constant
ส่วนนี้ถือว่าตัวอย่างที่ 3 การกำหนดค่าด้านบน
URL แถบที่อยู่: www.example.com
ไฟล์ wordpress: / ไดเรกทอรี wordpress
(อีกกรณีเป็นเรื่องเล็กน้อย: ตัวแปร / ฟังก์ชั่นทั้งหมดถือ / คืนค่าเดียวกัน)
วิธีการตั้งค่าสำหรับ
site_url
และ
home_url
ก่อนอื่นให้ฉันทราบsiteurl
และhome
เก็บค่าที่ส่งคืนโดยฟังก์ชันด้านบน
1) โดยปกติคุณตั้งค่าเหล่านี้บนแผง backend / dashboard / admin
Settings -> General ->
siteurl
WordPress: ที่อยู่ WordPress: https://www.example.com/wordpress
home
ที่อยู่เว็บไซต์: https://www.example.com
(ไม่รวมเครื่องหมายสแลชต่อท้ายที่นี่ - ซึ่งจะถูกกำหนดค่าไว้ที่อื่น)
2) อีกวิธีหนึ่งคือคุณตั้งค่าเหล่านี้ในฐานข้อมูล WordPress ของคุณ:
wp_options
ตาราง ->
`options_name` | `options_value`
----------------------------------------------------
`siteurl` | `https://www.example.com/wordpress`
`home` | `https://www.example.com`
(ไม่รวมเครื่องหมายสแลชต่อท้ายที่นี่ - ซึ่งจะถูกกำหนดค่าไว้ที่อื่น)
3) แก้ไขwp-config.php
กำหนดค่าคงที่เฉพาะเหล่านี้เพื่อเก็บค่า
กำหนดWP_HOME
และWP_SITEURL
ตั้งค่าโดยการแทรกบรรทัดเหล่านี้ไปยังด้านบนของwp-config.php
ไฟล์:
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 ** //
...
(ไม่รวมเครื่องหมายสแลชต่อท้ายที่นี่ - ซึ่งจะถูกกำหนดค่าไว้ที่อื่น)
การอ้างอิง: WP_SITEURLและWP_HOME
หมายเหตุ: นี่เป็นสิ่งที่สับสน
(ฉันหวังว่า WordPress จะติดป้ายการตั้งค่าที่คล้ายกับชื่อ php ของพวกเขา
เช่นWordpress Site Address
และHome Page Address
หรือสิ่งที่ชัดเจนกว่าเช่นlocation of WordPress Site core files
และbrowser url to access WordPress home page
)
`WP_SITEURL` <--> `site_url()` <--> `siteurl` <--> Wordpress Address <--> /wordpress
`WP_HOME` <--> `home_url()` <--> `home` <--> Site Address <--> /
ตอนนี้ที่นี่เป็นที่ที่มันยาก!
หากคุณกำหนดค่าคงที่เหล่านั้นในwp-config.php
ไฟล์ของคุณไม่สำคัญว่าคุณมีค่าใดในหน้าฐานข้อมูล / การตั้งค่า
ในความเป็นจริงคุณจะไม่สามารถแก้ไขค่านี้ผ่านทางส่วนหลัง (มันจะเป็นสีเทา) คุณยังคงสามารถแก้ไขได้โดยแก้ไขฐานข้อมูลของคุณ แต่การทำเช่นนั้นจะไม่มีผลกับไซต์ของคุณในขณะที่ค่าคงที่มีอยู่ในไฟล์ wp-config ของคุณ
คุณกำหนดค่าไฟล์จะไม่เปลี่ยนค่าในฐานข้อมูลของคุณ (หรือหน้าการตั้งค่าด้วยเหตุนี้คุณ) ค่าหน้าฐานข้อมูล / การตั้งค่าของคุณจะถูกละเว้นแทน ค่าในการแทนที่ wp-config หรือมีความสำคัญเหนือกว่าการตั้งค่าฐานข้อมูลของคุณ
ดังนั้น ... เพื่อสรุป (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
โดยที่ค่าสำหรับค่าคงที่ WP จะมีความสำคัญเหนือกว่าค่าการตั้งค่า wp_options / WP
ค่าบันทึก wp_options และค่าติดตั้ง WP นั้นเหมือนกัน
แก้ไขหนึ่งโดยนิยามแก้ไขอีก
มันเป็นเพียง 2 วิธีในการเข้าถึงตัวแปรเดียวกัน
ในทางตรงกันข้ามค่าคงที่ของ WordPress นั้นไม่เหมือนใครและเป็นอิสระ
ภายในค่าคงที่ WordPress (PHP) จะแทนที่ค่าฐานข้อมูลของพวกเขา
หากค่าคงที่ถูกกำหนดใน wp-config จะไม่เปลี่ยนฐานข้อมูล
แต่ภายใน WordPress จะต้องการ / ใช้ค่าของมันเสมอแทนที่จะเป็น db หนึ่ง