Không, content.php
và content-single.php
không phải là điều tương tự.
Trong ví dụ của bạn MÃ:
if (get_post_format() == false) {
get_template_part('content', 'single');
} else {
get_template_part('content', get_post_format());
}
WordPress sẽ tải content-single.php
khi get_post_format()
có false
. Tuy nhiên, get_template_part( $slug, $name )
vẫn có thể thử tải content.php
khi bạn gọi nó get_template_part('content', get_post_format());
trong ví dụ sau:
get_post_format()
trả về (ví dụ) video
.
Nhưng bạn không có content-video.php
tập tin phần mẫu.
Vì vậy, về cơ bản, ngay cả khi get_post_format()
không false
, content.php
vẫn sẽ cung cấp cho bạn phần mẫu mặc định nếu phần mẫu liên quan đến định dạng bài đăng tương ứng không được tạo.
Dòng dưới cùng: bất kể chính$slug
là gì, luôn luôn nên giữ tệp phần mẫu mặc định làm phần mẫu dự phòng cuối cùng (trong trường hợp của bạncontent.php
là tệp phần mẫu dự phòng mặc định đó). Vì vậy, CÓ, bạn vẫn có thể cần nó . Vì vậy, đừng xóa nó, để nó một mình.
Sau đây là một phần của CODE từ chức năng cốt lõi get_template_part
. Bạn sẽ thấy rằng, lõi luôn tải $templates[] = "{$slug}.php";
dưới dạng tệp dự phòng cuối cùng:
function get_template_part( $slug, $name = null ) {
// ... more CODE from WP core
$templates = array();
$name = (string) $name;
if ( '' !== $name )
$templates[] = "{$slug}-{$name}.php";
$templates[] = "{$slug}.php";
locate_template($templates, true, false);
}
Sau đó, trong locate_template
chức năng, nó lặp qua $templates
mảng cho đến khi tìm thấy tệp tương ứng, với CODE sau:
function locate_template($template_names, $load = false, $require_once = true ) {
$located = '';
foreach ( (array) $template_names as $template_name ) {
if ( !$template_name )
continue;
if ( file_exists(STYLESHEETPATH . '/' . $template_name)) {
$located = STYLESHEETPATH . '/' . $template_name;
break;
} elseif ( file_exists(TEMPLATEPATH . '/' . $template_name) ) {
$located = TEMPLATEPATH . '/' . $template_name;
break;
} elseif ( file_exists( ABSPATH . WPINC . '/theme-compat/' . $template_name ) ) {
$located = ABSPATH . WPINC . '/theme-compat/' . $template_name;
break;
}
}
if ( $load && '' != $located )
load_template( $located, $require_once );
return $located;
}
Vì vậy, như bạn có thể thấy từ CODE ở trên, nếu bạn xóa content.php
và nếu người dùng chủ đề có định dạng bài đăng mà bạn không có tệp phần mẫu, WordPress sẽ không tìm thấy tệp mẫu để quay lại, vì vậy sẽ chỉ cần tải không có gì trong trường hợp đó Như một nỗ lực cuối cùng, WordPress cố gắng tải một tệp phần mẫu từ wp-includes/theme-compat/
thư mục lõi, nhưng không có content.php
tệp phần mẫu trong lõi WP.
Lưu ý: Tuy nhiên, nếu bạn đang xây dựng một chủ đề con và chủ đề gốc đã chứacontent.php
tệp, thì bạn không cầncontent.php
tệp trong chủ đề con (nếu bạn không thực hiện bất kỳ sửa đổi nào ở đó), vì trong trường hợp đó, WordPress sẽ sử dụngcontent.php
tệpcủa chủ đề gốc làmtệp phần dự phòng.