Isso aconteceu porque não é assim que os templates funcionam no WordPress. Você não cria um arquivo específico para cada página do seu site. Você cria páginas e, em seguida, atribui modelos a elas e deixa o WordPress descobrir como acessar e criar acessos a essas páginas. Tentar acessar diretamente um desses arquivos resultará em um erro 404 porque o WordPress devido ao fato de que uma página (em wp land) com esse nome não existe.
O fato de que foi funcionar quando você tentou entrar diretamente em
index.php
é porque, na hierarquia de modelos
, index.php
é o último arquivo que o WP procura ao procurar um modelo para exibir sua página. Como este arquivo é obrigatório em todos os temas, ele foi encontrado e, portanto, não há 404s. Existe algo chamado permalinks que permite que você crie URLs amigáveis para seu site sem alterar nenhum nome em seus arquivos de modelo. Isso seria impossível se seus URLs estivessem diretamente anexados aos nomes dos arquivos.
O WordPress Theme Handbook tem um artigo bem legal sobre modelos de página , e o codex pode dar-lhe algumas dicas sobre como começar com eles. Smashing Magazine tem um artigo incrível, escrito por Nick Schäferhoff, que dá instruções detalhadas sobre como criar um template de página.
Em poucas palavras, e tirado do tema WordPress Twentyfourteen, um modelo de página funciona mais ou menos assim
<?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();
Curiosamente, a parte do comentário
Template Name: Full Width Page
torna este modelo global, o que significa que ele pode ser acessado em qualquer lugar dentro do seu site (dê uma olhada nos documentos para mais detalhes sobre hierarquia). Depois de ter algo assim em seu modelo, crie uma página e, em seguida, atribua seu modelo a ela. Você deve ser de ouro! EDITAR:
Ainda a tempo, confira este incrível infográfico que mostra como o template funciona na terra do WP, e como cada página eventualmente renderiza para
index.php
, se nenhum outro arquivo de modelo for encontrado.