Stało się tak, ponieważ nie tak działają szablony w WordPressie. Nie tworzysz osobnego pliku dla każdej strony w swojej witrynie. Tworzysz strony, a następnie przypisujesz do nich szablony i pozwalasz WordPressowi dowiedzieć się, jak uzyskać dostęp i utworzyć dostęp do tych stron. Próba bezpośredniego dostępu do jednego z tych plików da błąd 404, ponieważ WordPress ze względu na fakt, że strona (w wp land) o tej nazwie nie istnieje.
Fakt, że zrobił działa, gdy próbowałeś przejść bezpośrednio do index.php
dzieje się tak, ponieważ w hierarchii szablonów
, index.php
to ostatni plik, którego WP szuka podczas wyszukiwania szablonu, z którego ma wyświetlić Twoją stronę. Ponieważ ten plik jest niezbędny w każdym motywie, został znaleziony, a zatem nie ma błędów 404.
Jest coś, co nazywa się permalinkami co pozwala na tworzenie przyjaznych adresów URL do Twojej witryny bez zmiany jakichkolwiek nazw w plikach szablonów. Byłoby to niemożliwe, gdyby Twoje adresy URL były bezpośrednio dołączone do nazw plików.
Podręcznik motywów WordPress zawiera całkiem fajny artykuł na temat szablony stron oraz kodeks może dać ci kilka wskazówek, jak zacząć z nimi. Smashing Magazine ma niesamowity artykuł napisany przez Nicka Schäferhoffa, który zawiera szczegółowe instrukcje dotyczące tworzenia szablonu strony.
Krótko mówiąc, szablon strony zaczerpnięty z motywu WordPress Twentyfourteen działa podobnie
<?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();
Co ciekawe, część komentarza Template Name: Full Width Page
sprawia, że ten szablon jest globalny, co oznacza, że można uzyskać do niego dostęp z dowolnego miejsca w witrynie (więcej szczegółów na temat hierarchii można znaleźć w dokumentacji). Gdy już masz coś takiego w swoim szablonie, utwórz stronę, a następnie przypisz do niej szablon. Powinieneś być złoty!
EDYTUJ:
Jeszcze na czas, sprawdź tę niesamowitą infografikę
to pokazuje, jak szablonowanie działa w WP i jak każda strona ostatecznie renderuje się do index.php
, jeśli nie znaleziono żadnego innego pliku szablonu.