Това се случи, защото не работят шаблоните в WordPress. Не създавате конкретен файл за всяка страница във вашия уебсайт. Вие създавате страници и след това им присвоявате шаблони и оставяте WordPress да разбере как да осъществява достъп и да създава достъп до тези страници. Опитът за директен достъп до един от тези файлове ще доведе до 404, защото WordPress поради факта, че страница (в wp land) с това име не съществува.
Фактът, че направи работи, когато се опитате да влезете директно в index.php
е защото в йерархията на шаблоните
, index.php
е последният файл, който WP търси, когато търси шаблон, от който да покаже вашата страница. Тъй като този файл е задължителен във всяка тема, той беше намерен и следователно няма 404.
Има нещо, наречено постоянни връзки което ви позволява да създавате удобни URL адреси към вашия сайт, без да променяте имена във вашите шаблонни файлове. Това би било невъзможно, ако вашите URL адреси бяха директно прикачени към имената на файловете.
Наръчникът за теми на WordPress има доста ясна статия за шаблони на страници и кодекса може да ви даде някои съвети как да започнете с тях. Smashing Magazine има невероятна статия, написана от Ник Шеферхоф, която дава подробни инструкции как да създадете шаблон за страница.
Накратко и взето от темата на WordPress Twentyfourteen, шаблонът за страница работи донякъде по този начин
<?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();
Интересното е, че частта за коментари Template Name: Full Width Page
прави този шаблон глобален, което означава, че може да бъде достъпен навсякъде във вашия сайт (разгледайте документите за повече подробности относно йерархията). След като имате нещо подобно в шаблона си, създайте страница и след това задайте шаблон към нея. Трябва да си златен!
РЕДАКТИРАНЕ:
Все още навреме, вижте тази страхотна инфографика
това показва как работи шаблоните в WP land и как всяка страница в крайна сметка се изобразява в index.php
, ако не бъде намерен друг шаблонен файл.