Điều đó xảy ra bởi vì đó không phải là cách các mẫu hoạt động trong WordPress. Bạn không tạo một tệp cụ thể cho từng trang trong trang web của mình. Bạn tạo các trang, sau đó bạn gán các mẫu cho chúng và để WordPress tìm ra cách truy cập và tạo quyền truy cập vào các trang đó. Cố gắng truy cập trực tiếp vào một trong những tệp đó sẽ mang lại 404 vì WordPress do thực tế là một trang (ở wp land) với tên đó không tồn tại.
Thực tế là nó đã đã làm hoạt động khi bạn cố gắng truy cập trực tiếp vào index.php
là do, trong phân cấp mẫu
, index.php
là tệp cuối cùng mà WP tìm kiếm khi tìm kiếm một mẫu để hiển thị trang của bạn. Vì tệp này phải có trong mọi chủ đề, nên nó đã được tìm thấy và do đó không có tệp 404.
Có một thứ gọi là liên kết cố định cho phép bạn tạo các URL thân thiện với trang web của mình mà không cần thay đổi bất kỳ tên nào trong tệp mẫu của bạn. Điều đó là không thể nếu URL của bạn được đính kèm trực tiếp với tên tệp.
Sổ tay Chủ đề WordPress có một bài viết khá gọn gàng trên mẫu trang và codex có thể cung cấp cho bạn một số gợi ý về cách bắt đầu với chúng. Tạp chí Smashing có một bài báo tuyệt vời do Nick Schäferhoff viết, hướng dẫn chi tiết về cách tạo mẫu trang.
Tóm lại, và được lấy từ chủ đề WordPress Twentyfourteen, một mẫu trang hoạt động giống như thế này
<?php
/**
* Template Name: Full Width Page
*
* @package WordPress
* @subpackage Twenty_Fourteen
* @since Twenty Fourteen 1.0
*/
get_header(); ?>
<div id="main-content" class="main-content">
<?php
if ( is_front_page() && twentyfourteen_has_featured_posts() ) {
// Include the featured content template.
get_template_part( 'featured-content' );
}
?>
<div id="primary" class="content-area">
<div id="content" class="site-content" role="main">
<?php
// Start the Loop.
while ( have_posts() ) : the_post();
// Include the page content template.
get_template_part( 'content', 'page' );
// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) {
comments_template();
}
endwhile;
?>
</div><!-- #content -->
</div><!-- #primary -->
</div><!-- #main-content -->
<?php
get_sidebar();
get_footer();
Điều thú vị là phần bình luận Template Name: Full Width Page
làm cho mẫu này toàn cầu, có nghĩa là nó có thể được truy cập ở bất kỳ đâu trong trang web của bạn (xem tài liệu để biết thêm chi tiết về phân cấp). Khi bạn có một cái gì đó giống như vậy trên mẫu của mình, hãy tạo một trang, sau đó gán mẫu của bạn cho nó. Bạn nên vàng!
CHỈNH SỬA:
Vẫn còn kịp, hãy xem đồ họa thông tin tuyệt vời
này cho thấy cách tạo khuôn mẫu hoạt động trong WP land và cách mọi trang cuối cùng hiển thị thành index.php
, nếu không tìm thấy tệp mẫu nào khác.