Itu terjadi karena bukan itu cara kerja template di WordPress. Anda tidak membuat file tertentu untuk setiap halaman di situs web Anda. Anda membuat halaman, dan kemudian Anda menetapkan template untuk mereka, dan biarkan WordPress mencari cara untuk mengakses dan membuat akses ke halaman tersebut. Mencoba mengakses langsung salah satu file tersebut akan menghasilkan 404 karena WordPress karena fakta bahwa halaman (di wp land) dengan nama itu tidak ada.
Fakta bahwa itu memang bekerja ketika Anda mencoba masuk langsung ke index.php
adalah karena , dalam hierarki template
, index.php
adalah file terakhir yang dicari WP saat mencari template untuk menampilkan halaman Anda. Karena file ini harus dimiliki di setiap tema, file ini ditemukan, dan karenanya tidak ada 404.
Ada sesuatu yang disebut permalinks yang memungkinkan Anda membuat URL ramah ke situs Anda tanpa mengubah nama apa pun di file template Anda. Itu tidak mungkin jika URL Anda dilampirkan langsung ke nama file.
WordPress Theme Handbook memiliki artikel yang cukup rapi di templat halaman , dan codex dapat memberi Anda beberapa petunjuk tentang cara memulainya. Smashing Magazine memiliki artikel luar biasa, yang ditulis oleh Nick Schäferhoff, yang memberikan petunjuk terperinci tentang cara membuat templat halaman.
Singkatnya, dan diambil dari tema WordPress Twentyfourteen, templat halaman berfungsi seperti ini
<?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();
Yang cukup menarik, bagian komentar Template Name: Full Width Page
menjadikan template ini global, yang berarti dapat diakses di mana saja di dalam situs Anda (lihat dokumen untuk detail selengkapnya tentang hierarki). Setelah Anda memiliki sesuatu seperti itu di template Anda, buat halaman, lalu tetapkan template untuk Anda. Anda harus menjadi emas!
EDIT:
Masih dalam waktu, periksa infografis keren
ini yang menunjukkan cara kerja templating di WP land, dan bagaimana setiap halaman akhirnya dirender ke index.php
, jika tidak ada file template lain yang ditemukan.