O WordPress continua buscando a página do arquivo, em vez da página do modelo

4

Eu tenho um modelo configurado e criei uma página no WordPress e escolhi o modelo correspondente no menu suspenso. Eu criei modelos para várias páginas deste site e todos eles funcionaram bem; no entanto, esse modelo está causando problemas. O WordPress continua buscando a página de arquivo por algum motivo. A classe exata do corpo é esta: archive post-type-archive post-type-archive-teams logged-in

Aqui está o modelo que criei.

        <?php get_header();?>

            <section id="content">

                <?php
                    $temp = $wp_query;
                    $wp_query = null;
                    $wp_query = new WP_Query();
                    $wp_query->query('post_type=teams&posts_per_page=7');

                    while ( $wp_query->have_posts() ) : $wp_query->the_post();

                ?>

                <article class="post team" id="post-<?php the_ID(); ?>">
                    <h2><?php the_title(); ?></h2>
                    <section class="entry">
                                      content here
                    </section>
                </article>

                <?php
                    endwhile; 
                    $wp_query = null;
                    $wp_query = $temp;
                    wp_reset_query();
                ?>
            </section>

        <?php get_sidebar(); ?>

        <?php get_footer(); ?>

Alguém pode me ajudar a descobrir por que isso não está funcionando?

    
por SamY 09.07.2011 / 21:31

2 respostas

2

Meu problema foi que research não estava usando page-research.php , mas usando archive.php

Resolvi não pela solução "Páginas estáticas e tipos de postagem personalizados não podem ter o mesmo slug", mas no painel em Configurações - > Permalinks.

Estava em "Dia e nome" e eu mudei para "Numérico" e a página de pesquisa carregada de page-research.php

    
por Bruce Robinson 29.09.2014 / 20:34
1

A abordagem mais básica para isso é fazer o que eu faço: ao criar páginas de modelo, precedo-as com "template _".

Assim, se você quiser um modelo team.php para uma página, procure por template_team.php.

Além disso, você tem código na sua página que você não precisa.

Eu mudaria seu código para ser simplesmente:

 <?php get_header();?>

        <section id="content">

            <?php
                $wp_query = new WP_Query();
                $wp_query->query('post_type=teams&posts_per_page=7');

                while ( $wp_query->have_posts() ) : $wp_query->the_post();

            ?>

            <article class="post team" id="post-<?php the_ID(); ?>">
                <h2><?php the_title(); ?></h2>
                <section class="entry">
                                  content here
                </section>
            </article>

            <?php
                endwhile; 
                wp_reset_query();
            ?>
        </section>

    <?php get_sidebar(); ?>

    <?php get_footer(); ?>

E o motivo de eu fazer as alterações é porque você não está usando $ temp, então não há motivo para atribuí-lo. Além disso, você não tem nenhuma referência a um wp_query quando a página é carregada e, mesmo que você o tenha feito, você não o usa em nenhum lugar da página.

Você instancia uma consulta totalmente nova (usando a palavra-chave NEW) e, no que diz respeito à página, essa é a única consulta que você tem na página. Assim, essa é a única consulta que você precisa redefinir.

O que está realmente acontecendo é que você clica em um link e direciona você para a página "equipes". Isso carrega o "template_teams.php" e tem todas as variáveis atribuídas a $ post para aquela página, assim que a página é carregada. Dentro de $ post é o conteúdo real da página que você criou no editor de texto do WordPress e atribuiu o modelo para.

Agora, se você precisar de uma consulta diferente sobre a padrão carregada com a página, você poderá facilmente alterar sua variável $ wp_query para algo mais relevante para o que você deseja:

$custom_query_1 = new WP_Query();
$custom_query_1->query('post_type=teams&posts_per_page=7');

Em seguida, você poderá usar a consulta padrão E sua consulta personalizada em qualquer lugar da página a qualquer momento. Usando a função de limpeza, wp_reset_query () é ideal para usar depois que cada loop BUT estiver limpo em todas as consultas.

Para evitar que isso apague as consultas personalizadas, basta colocar a nova consulta apenas onde precisar.

    
por Neil Davidson 24.01.2012 / 23:43