Không gian tên và tự động tải không được áp dụng rộng rãi khi phát triển plugin WordPress, vì cam kết của WordPress về khả năng tương thích ngược với PHP kể từ 5. 2. 4, trong khi đó, không gian tên chỉ khả dụng kể từ phiên bản 5. 3. 0. Ngoài ra, Composer yêu cầu PHP 5. 3. 2+. Tuy nhiên, nếu bạn đang tạo một trang web WordPress sẽ chạy trên máy chủ có phiên bản PHP là…
Chúng tôi cho rằng bạn đã quen thuộc với nhà soạn nhạc. Nếu không, vui lòng đọc Bắt đầu với Composer cho Dự án WordPress trước
Trước khi chúng tôi thực sự bắt đầu với nhà soạn nhạc, chúng tôi cần thực hiện một số thay đổi đối với thiết lập mặc định của WordPress để làm cho nó trở nên thân thiện hơn với nhà soạn nhạc/git
Bố cục hệ thống tệp
Sau đây là nội dung ví dụ cho webroot. Thông thường thư mục htdocs,_______36_______ hoặcwww tùy thuộc vào cấu hình máy chủ của bạn
composer.json composer.lock index.php wordpress/ wp-content/ uploads/ wp-config.php .gitignoreHãy giải thích từng điều trên
tập tin gitignore
Một số tệp và thư mục sẽ được tạo tự động và hiển thị ở trên chỉ để minh họa. Điều này cũng có nghĩa là chúng tôi sẽ không đặt chúng dưới sự kiểm soát phiên bản. Vì vậy, ở mức tối thiểu, vui lòng thêm phần sau vào. gitignore
vendor/ wordpress/ wp-content/Thư mục vendor sẽ được tạo bởi nhà soạn nhạc khi chạy. Chúng tôi sẽ không sử dụng nó cho bất kỳ mục đích nào
thư mục "wordpress"
Chúng tôi sẽ cung cấp cho WordPress lõi thư mục riêng. WordPress hỗ trợ kiểu thiết lập này từ lâu
Xin lưu ý rằng bạn không cần phải tự tạo thư mục này hoặc tải xuống WordPress. Nhà soạn nhạc sẽ lo việc này
mục lục. php trong webroot
Để hỗ trợ ở trên, chúng tôi sẽ cần sao chép vendor/ wordpress/ wp-content/0 từ thư mục WordPress sang thư mục gốc (htdocs) và chỉnh sửa thư mục đó để bao gồm đường dẫn thư mục “wordpress”. Bạn có thể sử dụng ví dụ dưới đây vì nó là
<?php /** * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. * * @package WordPress */ /** * Tells WordPress to load the WordPress theme and output it. * * @var bool */ define('WP_USE_THEMES', true); /** Loads the WordPress Environment and Template */ require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' );Bạn có thể nhận thấy vendor/ wordpress/ wp-content/2 ở dòng cuối cùng
thư mục “wp-content”
Tiếp theo, chúng ta cần di chuyển vendor/ wordpress/ wp-content/3 ra bên ngoài thư mục vendor/ wordpress/ wp-content/4.
Một lần nữa, bạn không cần phải tạo nội dung wp hoặc tải xuống bất kỳ chủ đề/plugin nào. Nhà soạn nhạc sẽ làm điều này cho bạn
wp-config. php
Để bố cục không mặc định của chúng tôi hoạt động, chúng tôi cần phải thêm một số dòng vào tệp vendor/ wordpress/ wp-content/5 của mình
Bạn có thể thêm phần sau ở trên cùng (sau thẻ vendor/ wordpress/ wp-content/6)
define('WP_SITEURL', '//' . $_SERVER['SERVER_NAME'] . '/wordpress'); define('WP_HOME', '//' . $_SERVER['SERVER_NAME']); define('WP_CONTENT_DIR', dirname(__FILE__) . '/wp-content'); define('WP_CONTENT_URL', '//' . $_SERVER['SERVER_NAME'] . '/wp-content');Hai dòng đầu tiên chăm sóc thư mục vendor/ wordpress/ wp-content/4 và hai dòng tiếp theo chăm sóc thư mục vendor/ wordpress/ wp-content/3
Di chuyển wp-config. php bên ngoài webroot (tùy chọn)
Như bạn có thể nhận thấy, vendor/ wordpress/ wp-content/5 hiện diện trong thư mục webroot công khai tại đây
sẽ không làm việc ở đây. Điều này là do chúng tôi đã tăng một bậc đối với thư mục vendor/ wordpress/ wp-content/4. Nhưng chúng ta vẫn có thể nâng nó lên một cấp độ bằng cách thực hiện thêm một số công việc
Với wp-config gốc. php
- Di chuyển wp-config gốc. php lên một cấp, bên ngoài webroot. Hãy gọi webroot htdocs tại đây. Nó có thể là public_html, www hoặc bất cứ thứ gì khác. Bạn gọi thư mục của mình là gì không quan trọng miễn là bạn nhớ tên của nó
- Thay đổi dòng <?php /** * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. * * @package WordPress */ /** * Tells WordPress to load the WordPress theme and output it. * * @var bool */ define('WP_USE_THEMES', true); /** Loads the WordPress Environment and Template */ require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' );4 để bao gồm thư mục webroot vì dòng này đề cập đến đường dẫn hệ thống tệp tuyệt đối. Trong trường hợp của chúng tôi, nó sẽ trở thành <?php /** * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. * * @package WordPress */ /** * Tells WordPress to load the WordPress theme and output it. * * @var bool */ define('WP_USE_THEMES', true); /** Loads the WordPress Environment and Template */ require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' );5
- Bây giờ, hãy chuyển đến dòng cuối cùng <?php /** * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. * * @package WordPress */ /** * Tells WordPress to load the WordPress theme and output it. * * @var bool */ define('WP_USE_THEMES', true); /** Loads the WordPress Environment and Template */ require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' );6 và nhận xét nó
Tạo một wp-config “giả” mới. php
Sau khi di chuyển và sửa đổi bản gốc vendor/ wordpress/ wp-content/5, chúng ta cần tạo một trình giữ chỗ/giả mạo vendor/ wordpress/ wp-content/5 trong webroot. Hãy nhớ rằng WordPress không thể tra cứu hai cấp độ cho vendor/ wordpress/ wp-content/5
Bạn có thể đặt wp-config sau. php như hiện tại
<?php /** path to real wp-config.php **/ require_once( dirname(__DIR__) . '/wp-config.php'); /** Sets up WordPress vars and included files. */ require_once(ABSPATH . 'wp-settings.php');nhà soạn nhạc. tập tin khóa
Như đã giải thích trong chương trước, tệp define('WP_SITEURL', '//' . $_SERVER['SERVER_NAME'] . '/wordpress'); define('WP_HOME', '//' . $_SERVER['SERVER_NAME']); define('WP_CONTENT_DIR', dirname(__FILE__) . '/wp-content'); define('WP_CONTENT_URL', '//' . $_SERVER['SERVER_NAME'] . '/wp-content');0 sẽ được tạo tự động. Vì vậy, chúng ta không cần khám phá thêm về nó
nhà soạn nhạc. tập tin json
Ở mức tối thiểu _______9_______1 tệp cho WordPress sẽ giống như bên dưới
{ "require": { "johnpbloch/wordpress": "4.2.2" } }Kho lưu trữ chính thức của nhà soạn nhạc có gói trình soạn nhạc dành cho WordPress do John P duy trì. khối u
Bạn có thể sao chép nội dung trên vào tệp define('WP_SITEURL', '//' . $_SERVER['SERVER_NAME'] . '/wordpress'); define('WP_HOME', '//' . $_SERVER['SERVER_NAME']); define('WP_CONTENT_DIR', dirname(__FILE__) . '/wp-content'); define('WP_CONTENT_URL', '//' . $_SERVER['SERVER_NAME'] . '/wp-content');1 trên hệ thống tệp của mình hoặc chạy define('WP_SITEURL', '//' . $_SERVER['SERVER_NAME'] . '/wordpress'); define('WP_HOME', '//' . $_SERVER['SERVER_NAME']); define('WP_CONTENT_DIR', dirname(__FILE__) . '/wp-content'); define('WP_CONTENT_URL', '//' . $_SERVER['SERVER_NAME'] . '/wp-content');3 sẽ tạo tệp define('WP_SITEURL', '//' . $_SERVER['SERVER_NAME'] . '/wordpress'); define('WP_HOME', '//' . $_SERVER['SERVER_NAME']); define('WP_CONTENT_DIR', dirname(__FILE__) . '/wp-content'); define('WP_CONTENT_URL', '//' . $_SERVER['SERVER_NAME'] . '/wp-content');1 theo sau là trình hướng dẫn tương tác.
Trong cả hai trường hợp, bạn sẽ có một tệp define('WP_SITEURL', '//' . $_SERVER['SERVER_NAME'] . '/wordpress'); define('WP_HOME', '//' . $_SERVER['SERVER_NAME']); define('WP_CONTENT_DIR', dirname(__FILE__) . '/wp-content'); define('WP_CONTENT_URL', '//' . $_SERVER['SERVER_NAME'] . '/wp-content');1
Tiếp theo, hãy chạy lệnh define('WP_SITEURL', '//' . $_SERVER['SERVER_NAME'] . '/wordpress'); define('WP_HOME', '//' . $_SERVER['SERVER_NAME']); define('WP_CONTENT_DIR', dirname(__FILE__) . '/wp-content'); define('WP_CONTENT_URL', '//' . $_SERVER['SERVER_NAME'] . '/wp-content');6, lệnh này sẽ tạo thư mục_______1_______4 và tải xuống phiên bản WordPress 4. 2. 2 trong đó. Bạn có thể chỉ định bất kỳ phiên bản nào khác và nó sẽ được tải xuống
Bạn cũng sẽ thấy thư mục vendor và tệp define('WP_SITEURL', '//' . $_SERVER['SERVER_NAME'] . '/wordpress'); define('WP_HOME', '//' . $_SERVER['SERVER_NAME']); define('WP_CONTENT_DIR', dirname(__FILE__) . '/wp-content'); define('WP_CONTENT_URL', '//' . $_SERVER['SERVER_NAME'] . '/wp-content');0 được tạo. Bạn không cần phải đào sâu vào chúng
Trong chương tiếp theo, chúng ta sẽ khám phá define('WP_SITEURL', '//' . $_SERVER['SERVER_NAME'] . '/wordpress'); define('WP_HOME', '//' . $_SERVER['SERVER_NAME']); define('WP_CONTENT_DIR', dirname(__FILE__) . '/wp-content'); define('WP_CONTENT_URL', '//' . $_SERVER['SERVER_NAME'] . '/wp-content');1 chi tiết hơn
Đừng quên git commit/push thay đổi bạn đã thực hiện cho đến nay. Từ đây trở đi, bạn sẽ chỉ chỉnh sửa define('WP_SITEURL', '//' . $_SERVER['SERVER_NAME'] . '/wordpress'); define('WP_HOME', '//' . $_SERVER['SERVER_NAME']); define('WP_CONTENT_DIR', dirname(__FILE__) . '/wp-content'); define('WP_CONTENT_URL', '//' . $_SERVER['SERVER_NAME'] . '/wp-content');1 và chạy lệnh <?php /** path to real wp-config.php **/ require_once( dirname(__DIR__) . '/wp-config.php'); /** Sets up WordPress vars and included files. */ require_once(ABSPATH . 'wp-settings.php'); 2 để cập nhật tệp define('WP_SITEURL', '//' . $_SERVER['SERVER_NAME'] . '/wordpress'); define('WP_HOME', '//' . $_SERVER['SERVER_NAME']); define('WP_CONTENT_DIR', dirname(__FILE__) . '/wp-content'); define('WP_CONTENT_URL', '//' . $_SERVER['SERVER_NAME'] . '/wp-content');0. Các tệp khác sẽ hầu như không bị ảnh hưởng