ต้องการเริ่มต้นใช้งาน Better WP-Config ASAP หรือไม่
define()
ค่าคงที่ทั้งหมดที่จำเป็นสำหรับ WordPress core สำหรับคุณ.php
ไฟล์ .env
หรือไฟล์ JSON
db
, debug
, error
, salts
ฯลฯdefine()
กับ ini_set()
ฯลฯdefine()
ที่จำเป็นสำหรับปลั๊กอินหรือธีมใดก็ได้private
ของโฮสต์เว็บที่ได้รับการจัดการเพื่อจัดเก็บการกำหนดค่าABSPATH
(เช่น WP core) เป็นรูทเว็บ /wp
หรือส่วนย่อยอื่น ๆWP_CONTENT_DIR
เป็น /wp-content
, /app
หรือ subdir อื่น ๆlocal
, test
, stage
, prod
ฯลฯHTTP_HOST
ด้วยนิพจน์ทั่วไปsecrets
)index.php
หรือ wp-config.php
$_ENV
, $_SERVER
หรือ getenv()
private
wp_config()->print_config();
(หมายเหตุ: ข้อมูลต่อไปนี้จะไม่เป็นจริงจนกว่าเราจะแก้ไขปัญหานี้ให้เสร็จสิ้น จนกว่าจะถึงตอนนั้น โปรดดูการเริ่มต้นอย่างรวดเร็วของเรา)
เพียงสร้างไฟล์ชื่อ /wp-content/config/config.php
และเพิ่มการกำหนดค่าเว็บไซต์ของคุณโดยใช้รูปแบบที่นี่:
<?php
return array(
'db[name]' => 'example_db',
'db[user]' => 'example_user',
'db[pass]' => '1234567890abcdef',
'db[charset]' => 'utf8mb4_unicode_ci',
'db[collate]' => 'utf8mb4',
'db[host]' => 'localhost',
'db[table_prefix]' => 'wp_',
'defines' => array(
'CONSTANT_REQUIRED_BY_A_PLUGIN' => 'it's value'
),
);
นอกจากนี้ คุณจะต้องแทนที่ /index.php
และ /wp-config.php
ของไซต์ของคุณด้วยทางเลือก ง่ายๆ ที่คุณสามารถหาได้ที่นี่และที่นี่ ตามลำดับ
อย่างไรก็ตาม ก่อนที่คุณจะตั้ง สมมติฐานผิด:
WP-Config ที่ดีกว่าสามารถโหลดไฟล์ปรับแต่งได้จาก ../config
, /private/config
หรือทุกที่ที่คุณต้องการ
หากคุณเป็นแฟนตัวยงของการแยกการกำหนดค่าและโค้ด คุณสามารถตั้ง file_format
เป็น 'env'
ได้
อาจดูเรียบง่าย — ซึ่งมีจุดประสงค์เพื่อให้การเริ่มต้นใช้งานเป็นเรื่องง่าย — แต่ Better WP-Config ได้รับการออกแบบทางสถาปัตยกรรมให้รองรับข้อกำหนดการกำหนดค่าที่ซับซ้อนสูง เมื่อคุณเริ่มต้นและพบกับกรณีการใช้งานที่ซับซ้อนมากขึ้น เช่น สภาพแวดล้อมที่หลากหลายและการปรับใช้อัตโนมัติ คุณจะเห็นว่า Better WP-Config มีความยืดหยุ่นและทรงพลังเพียงใด
คุณอาจถามว่าปัญหาใดที่ดีกว่า WP-Config กำลังพยายามแก้ไข คุณอาจถามว่า: "เหตุใดเราจึงต้องมีโซลูชันการกำหนดค่า WordPress ที่ดีกว่า" เราต้องการอย่างใดอย่างหนึ่งเนื่องจากเราพบว่ามีกรณีการใช้งานมากเกินไปนอกเหนือจากเรื่องเล็กน้อยที่ต้องการโซลูชันการกำหนดค่าที่ดีกว่า อ่านต่อ:
WordPress เป็น CMS ที่ยอดเยี่ยม แต่ไม่สนใจความต้องการของนักพัฒนา WordPress ที่ต้องการใช้เวิร์กโฟลว์ที่เป็นมืออาชีพมากขึ้น เช่น กับสภาพแวดล้อม test
/ stage
/ live
จริง การกำหนดค่าเริ่มต้นของ WordPress ได้รับการออกแบบมาเพื่อจัดการการกำหนดค่าสำหรับสภาพแวดล้อมเดียว หากคุณต้องการจัดการเพิ่มเติม คุณต้องใช้โซลูชันการกำหนดค่าหลายสภาพแวดล้อมของคุณเอง
WordPress ช่วยให้คุณสามารถจัดเก็บการกำหนดค่าใน wp-config.php
ในเว็บรูทหรือหนึ่งระดับไดเร็กทอรีด้านบน แม้ว่าคุณจะสามารถจัดเก็บการกำหนดค่าของคุณในไฟล์อื่นแล้ว require()
ใน wp-config.php
(ซึ่งเป็นสิ่งที่ WP-Config ดีกว่า ทำ) การแฮ็กโซลูชันที่กำหนดเองเข้าด้วยกันหมายความว่าคุณจะต้องจัดทำเอกสารและดูแลรักษามันด้วย สมมติว่าคุณ อยากจะพึ่งมันในอนาคต
และหากคุณประสบปัญหาในการพัฒนาและจัดทำเอกสารโซลูชัน เช่น Better WP-Config คุณจะต้องลงทุนเวลา (และเงิน) ไปกับการจำลองสิ่งที่คุณเพิ่งใช้โดยไม่ต้องพยายามพัฒนาและจัดทำเอกสารใดๆ
เพิ่มการดูถูกความเสียหายต่อโฮสต์ที่จัดการ WordPress แต่ละโฮสต์ — เช่น Pantheon และ WPEngine — แต่ละรายการมีโซลูชันการกำหนดค่าที่เข้ากันไม่ได้โดยพลการเพื่อรองรับข้อเสนอ WordPress ที่มีการจัดการของตนเอง
นี่คือวิธีที่โฮสต์เว็บที่จัดการ WordPress ต่างๆ จัดการและ/หรือจำกัดคุณด้วย wp-config.php
หากคุณคุ้นเคยกับวิธีที่เว็บไซต์ WordPress ที่ได้รับการจัดการอื่นๆ จัดการ wp-config.php
โปรดพิจารณาส่งคำขอดึงพร้อมเอกสารเกี่ยวกับวิธีการจัดการ wp-config.php
เพื่อช่วยเราและผู้อื่น
ใครก็ตามที่เคยร่วมงานกับ WordPress จะรู้เกี่ยวกับการกำหนดค่าข้อมูลประจำตัวฐานข้อมูลของ WordPress ผ่านทางค่าคงที่ PHP DB_HOST
, DB_NAME
, DB_USER
และ DB_PASSWORD
สิ่งนี้ดูเหมือนง่ายและสะดวกเมื่อคุณเริ่มทำงานกับ WordPress เป็นครั้งแรก แต่เมื่อเวลาผ่านไป คุณจะพบว่าการกำหนดค่านั้น ไม่ยืดหยุ่นอย่างมาก เนื่องจากคุณ ไม่สามารถเรียงซ้อนการกำหนดค่า จากค่าเริ่มต้นของ WordPress ค่าเริ่มต้นของโครงการของคุณ ไปจนถึงลักษณะเฉพาะของสภาพแวดล้อมของคุณ และสุดท้ายคือการกำหนดค่าของโฮสต์เว็บของคุณ
WPConfig ที่ดีกว่าไม่ได้กำจัดการใช้ค่าคงที่ที่ไม่เปลี่ยนรูป แต่จะรอจนกว่าการกำหนดค่าแบบเรียงซ้อนทั้งหมดจะถูกรวมเข้าด้วยกันก่อนที่ define()
ค่าคงที่เหล่านี้ (แต่นี่อาจเป็นก้าวแรกในการกำจัดการใช้ค่าคง define()
d จาก WordPress เป็นเรื่องที่น่าคิด เนื่องจากค่าคงที่ที่ไม่เปลี่ยนรูปของ PHP ทำให้การทดสอบฟังก์ชันการทำงานของ WordPress แบบอัตโนมัติทำได้ยากกว่าที่จำเป็นมาก)
น่าเสียดายที่ไม่มีวิธีง่ายๆ ในการค้นหาตัวเลือกทั้งหมดที่มีในแกนหลักของ WordPress เนื่องจากมีการระบุไว้ในฐานโค้ดของ WordPress และตำแหน่งที่บันทึกไว้ทางออนไลน์ต่างๆ WP-Config ที่ดีกว่า (ส่วนใหญ่) แก้ปัญหานี้ด้วย "wp_config()->print_config()
คล้ายกับ phpinfo()
ตัวเลือกการกำหนดค่าจำนวนมากไม่มีค่าเริ่มต้น เช่น การกำหนดค่าฐานข้อมูลที่เพิ่มการเรียนรู้ที่จำเป็นสำหรับการพัฒนาท้องถิ่น WP-Config ที่ดีกว่า มีตัวเลือกเริ่มต้นสำหรับตัวเลือก "ที่รู้จัก" ทั้งหมด
ด้วยตัวมันเอง คุณสามารถสร้างชุดแบบแผนที่ใช้การได้เพื่อให้สามารถควบคุมเวอร์ชันการกำหนดค่าของคุณสำหรับสภาพแวดล้อมที่แตกต่างกันทั้งหมดที่โปรเจ็กต์ของคุณต้องการ — เราทำ — แต่แล้วคุณก็รู้ว่าเว็บโฮสต์แต่ละแห่งจัดการมันแตกต่างกันและพยายามตามที่คุณต้องการ คุณรู้สึกว่าเป็นไปไม่ได้เลยที่จะหาโซลูชันที่สอดคล้องกันที่ทีมของคุณสามารถใช้ซึ่งจะทำงานร่วมกับโฮสต์เว็บต่างๆ ที่คุณและลูกค้าของคุณได้เลือกไว้
เพื่อให้เข้าใจได้ดีขึ้นว่าเหตุใดจึงเป็นเรื่องยาก โปรดอ่านเกี่ยวกับวิธีที่ Pantheon และ WPEngine จัดการไฟล์ wp-config.php
ตามลำดับ
สุดท้ายนี้ ปัญหาที่เกี่ยวข้องกับเวิร์กโฟลว์ระดับมืออาชีพและกรณีการใช้งานการควบคุมเวอร์ชันเกิดขึ้นจากตัวเลือกที่เข้ากันไม่ได้ซึ่งทำโดยโฮสต์เว็บ WordPress ที่มีการจัดการ เพียงเพราะขาดมาตรฐานของ wp-config.php
เพียงทำให้การปรับใช้ยากเกินความจำเป็น สิ่งนี้มีผลไม่ว่าคุณจะใช้การอัปโหลด SFTP, การใช้งาน Git เช่น Pantheon หรือการปรับใช้งานผ่านผู้ให้บริการบูรณาการอย่างต่อเนื่อง เช่น CircleCI
ข่าวดีก็คือ Better WP-Config แก้ปัญหา (เกือบ) ทั้งหมดนี้ได้แล้ววันนี้! เริ่มต้นเลย
เราพอใจมากกับ Better WP-Config ที่ดีเพียงใด อย่างไรก็ตาม สิ่งต่างๆ อาจเป็นดังนี้:
เยี่ยมมาก หาก ClassicPress และ CalmPress forks ต้องใช้ Better WP-Config สำหรับการกำหนดค่า
ดียิ่งขึ้นไปอีก หาก โฮสต์เว็บที่จัดการ WordPress จะสร้างมาตรฐาน ใน Better WP-Config สำหรับบริการของพวกเขาหรือ
สิ่งที่ดี ที่สุดคือหาก WordPress เองใช้ Better WP-Config สำหรับการติดตั้งใหม่ ในขณะที่ยังคงรักษาการสนับสนุนอย่างต่อเนื่องสำหรับไซต์ที่มีอยู่ซึ่งใช้ wp-config.php
อยู่แล้วเหมือนเช่นที่เคยเป็นมานานหลายปี
GPLv2