Bạn có thể đưa nội dung của một tệp PHP vào một tệp PHP khác trước khi máy chủ thực thi nó. Có hai hàm PHP có thể được sử dụng để bao gồm một tệp PHP vào một tệp PHP khác
- Hàm bao gồm []
- Hàm yêu cầu []
Đây là điểm mạnh của PHP giúp tạo các hàm, header, footer hay các phần tử có thể sử dụng lại trên nhiều trang. Điều này sẽ giúp các nhà phát triển dễ dàng thay đổi bố cục của trang web hoàn chỉnh với nỗ lực tối thiểu. Nếu có bất kỳ thay đổi nào cần thiết thì thay vì thay đổi hàng nghìn tệp, chỉ cần thay đổi tệp được bao gồm
Hàm bao gồm []
Hàm bao gồm [] lấy tất cả văn bản trong một tệp được chỉ định và sao chép nó vào tệp sử dụng hàm bao gồm. Nếu có bất kỳ vấn đề nào khi tải tệp thì hàm include[] sẽ tạo cảnh báo nhưng tập lệnh sẽ tiếp tục thực thi
Giả sử bạn muốn tạo một menu chung cho trang web của mình. Sau đó tạo một menu tập tin. php với nội dung sau
Home - ebXML - AJAX - PERL
Bây giờ hãy tạo bao nhiêu trang tùy thích và bao gồm tệp này để tạo tiêu đề. Ví dụ bây giờ bài kiểm tra của bạn. tệp php có thể có nội dung sau
include["menu.php"]; ?>This is an example to show how to include PHP file!
Nó sẽ tạo ra kết quả sau -
Hàm yêu cầu []
Hàm request[] lấy tất cả văn bản trong một tệp đã chỉ định và sao chép nó vào tệp sử dụng hàm bao gồm. Nếu có bất kỳ sự cố nào khi tải tệp thì hàm request[] sẽ tạo ra lỗi nghiêm trọng và tạm dừng việc thực thi tập lệnh
Vì vậy, không có sự khác biệt trong yêu cầu [] và bao gồm [] ngoại trừ chúng xử lý các điều kiện lỗi. Bạn nên sử dụng hàm require[] thay vì include[], vì các tập lệnh sẽ không tiếp tục thực thi nếu các tệp bị thiếu hoặc đặt tên sai
Bạn có thể thử sử dụng ví dụ trên với hàm require[] và nó sẽ tạo ra kết quả tương tự. Nhưng nếu bạn thử làm theo hai ví dụ trong đó tệp không tồn tại thì bạn sẽ nhận được kết quả khác
This is an example to show how to include wrong PHP file!
Điều này sẽ tạo ra kết quả sau -
This is an example to show how to include wrong PHP file!
Bây giờ hãy thử ví dụ tương tự với hàm require[]
require["xxmenu.php"]; ?>This is an example to show how to include wrong PHP file!
Lần này việc thực thi tệp tạm dừng và không có gì được hiển thị
LƯU Ý – Bạn có thể nhận được thông báo cảnh báo đơn giản hoặc thông báo lỗi nghiêm trọng hoặc không có gì cả. Điều này phụ thuộc vào cấu hình Máy chủ PHP của bạn
Bao gồm phần mẫu được đặt tên cho một chủ đề hoặc nếu một tên được chỉ định thì một phần chuyên biệt sẽ được bao gồm. Nếu chủ đề không chứa {slug}. php thì sẽ không có mẫu nào được đưa vào
Mẫu được bao gồm bằng cách sử dụng yêu cầu, không phải request_once, vì vậy bạn có thể bao gồm cùng một phần mẫu nhiều lần
Đối với tham số $name, nếu tệp có tên "{slug}-special. php" thì chỉ định "đặc biệt"
get_template_part[
'template-part',
'name',
array[
'key' => 'value',
'key2' => 'value2'
]
];
2 chuỗi Bắt buộcTên sên cho mẫu chung
get_template_part[
'template-part',
'name',
array[
'key' => 'value',
'key2' => 'value2'
]
];
3 chuỗi Tùy chọnTên tiêu bản chuyên ngành
Vỡ nợ.
get_template_part[
'template-part',
'name',
array[
'key' => 'value',
'key2' => 'value2'
]
];
4get_template_part[
'template-part',
'name',
array[
'key' => 'value',
'key2' => 'value2'
]
];
5 mảng Tùy chọnCác đối số bổ sung được chuyển đến mẫu
Vỡ nợ.
get_template_part[
'template-part',
'name',
array[
'key' => 'value',
'key2' => 'value2'
]
];
6khoảng trống. false Vô hiệu khi thành công, sai nếu mẫu không tồn tại.
get_template_part[ $slug ];
get_template_part[ $slug, $name ];
Ghi chú.
get_template_part[
'template-part',
'name',
array[
'key' => 'value',
'key2' => 'value2'
]
];
7 âm thầm thất bạiTập tin.
get_template_part[
'template-part',
'name',
array[
'key' => 'value',
'key2' => 'value2'
]
];
8. Xem tất cả tài liệu tham khảofunction get_template_part[ $slug, $name = null, $args = array[] ] {
/**
* Fires before the specified template part file is loaded.
*
* The dynamic portion of the hook name, `$slug`, refers to the slug name
* for the generic template part.
*
* @since 3.0.0
* @since 5.5.0 The `$args` parameter was added.
*
* @param string $slug The slug name for the generic template.
* @param string|null $name The name of the specialized template.
* @param array $args Additional arguments passed to the template.
*/
do_action[ "get_template_part_{$slug}", $slug, $name, $args ];
$templates = array[];
$name = [string] $name;
if [ '' !== $name ] {
$templates[] = "{$slug}-{$name}.php";
}
$templates[] = "{$slug}.php";
/**
* Fires before an attempt is made to locate and load a template part.
*
* @since 5.2.0
* @since 5.5.0 The `$args` parameter was added.
*
* @param string $slug The slug name for the generic template.
* @param string $name The name of the specialized template.
* @param string[] $templates Array of template files to search for, in order.
* @param array $args Additional arguments passed to the template.
*/
do_action[ 'get_template_part', $slug, $name, $templates, $args ];
if [ ! locate_template[ $templates, true, false, $args ] ] {
return false;
}
}
Kích hoạt trước khi cố gắng định vị và tải một phần mẫu
do_action [ "get_template_part_{$slug}", chuỗi $slug, string|null $name , mảng $args ]Kích hoạt trước khi tệp phần mẫu được chỉ định được tải
Truy xuất tên của tệp mẫu có mức ưu tiên cao nhất đang tồn tại
do_action[] wp-gộp/plugin. phpGọi các chức năng gọi lại đã được thêm vào hook hành động
get_template_part[
'template-part',
'name',
array[
'key' => 'value',
'key2' => 'value2'
]
];
5 đã được thêm vào. 3. 0. 0Giới thiệu. Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 57Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này
Đóng góp bởi Codex —
Sử dụng với các thư mục con chủ đề
Để sử dụng chức năng này với các thư mục con trong thư mục chủ đề của bạn, chỉ cần thêm tên thư mục trước sên. Ví dụ: nếu bạn có một thư mục có tên là “partials” trong thư mục chủ đề của mình và một phần mẫu có tên là “content-page. php” trong thư mục con đó, bạn sẽ sử dụng
7 như thế nàyget_template_part[ 'template-part', 'name', array[ 'key' => 'value', 'key2' => 'value2' ] ];
Đăng nhập để thêm phản hồiBạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 51Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này
Đóng góp bởi Vinobe —
Truyền biến sau WordPress 5. 5 bản cập nhật
=================================================================Khi gọi hàm
get_template_part[ 'template-part', 'name', array[ 'key' => 'value', 'key2' => 'value2' ] ];
Trong phần mẫu của bạn
Đăng nhập để thêm phản hồivar_dump[ $args ]; // Everything echo $args['key']; // Specific values
Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 34Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này
Đóng góp bởi pcarvalho —
codex cũ có mục này về "Chuyển biến cho mẫu"
Vì mẫu đang được yêu cầu, nên mẫu sẽ không có quyền truy cập vào bất kỳ biến nào bạn xác định trong mã PHP của chủ đề gọi điện, trừ khi bạn khai báo rõ ràng chúng là toàn cầu
Tuy nhiên, load_template[], được gọi gián tiếp bởi get_template_part[] trích xuất tất cả các biến truy vấn WP_Query, vào phạm vi của mẫu đã tải. Vì vậy, bạn có thể sử dụng set_query_var[] để cung cấp biến của mình cho phần mẫu
// You wish to make $my_var available to the template part at `content-part.php` set_query_var[ 'my_var', $my_var ]; get_template_part[ 'content', 'part' ];
Đăng nhập để thêm phản hồiĐề xuất nhỏ, nó nên là 'Vì vị trí trong quá trình thực thi mã, mẫu đang được yêu cầu'. Thực tế là được yêu cầu so với được đưa vào không phải là lý do khiến người ta phải sử dụng các biến truy vấn WP_Query. — Bởi Jonathan Bossenger —
// Kể từ phiên bản WP 5. 5, chúng ta có thể đặt các đối số trực tiếp như sau // Lưu ý. phương thức mảng yêu cầu PHP 7. * $args = [ ‘my_var_1’ => $my_var_1, ‘my_var_2’ => $my_var_2, ];
Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 32Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này
Đóng góp bởi Codex —
Sử dụng vòng lặp. php trong chủ đề con
Giả sử thư mục chủ đề là
1, chủ đề gốc là 20 và chủ đề con là 20tenchild, thì đoạn mã sau —var_dump[ $args ]; // Everything echo $args['key']; // Specific values
sẽ thực hiện PHP
2 cho tệp đầu tiên tồn tại trong số này, theo mức độ ưu tiên nàyvar_dump[ $args ]; // Everything echo $args['key']; // Specific values
wp-content/Themes/Twentytenchild/loop-index. php
Đăng nhập để thêm phản hồi
wp-content/Themes/Twentyten/loop-index. php
nội dung wp/chủ đề/hai mươi mười con/vòng lặp. php
nội dung wp/chủ đề/hai mươi/vòng lặp. phpBạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 9Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này
Đóng góp bởi Codex —
dẫn đường
Thêm thanh điều hướng vào chủ đề bằng tệp mẫu
3 chungvar_dump[ $args ]; // Everything echo $args['key']; // Specific values
Đăng nhập để thêm phản hồiBạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú nàyKết quả bình chọn cho ghi chú này. 7Bạn phải đăng nhập để bình chọn về mức độ hữu ích của ghi chú này
Đóng góp bởi đội trưởng cainer —
Một ví dụ đơn giản về cách sử dụng tham số
5 trong WordPress 5. 5 trong phần mẫu của bạnget_template_part[ 'template-part', 'name', array[ 'key' => 'value', 'key2' => 'value2' ] ];