WordPress一直在获取存档页面,而不是模板页面

时间:2011-07-09 作者:SamY

我设置了一个模板,在WordPress中创建了一个页面,并在下拉列表中选择了相应的模板。我已经为这个网站的几个页面创建了模板,它们都工作得很好;然而,这一模板正在引发问题。WordPress出于某种原因一直在获取存档页。确切的车身等级如下:archive post-type-archive post-type-archive-teams logged-in

这是我创建的模板。

        <?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(); ?>
有人能帮我弄清楚为什么这行不通吗?

2 个回复
SO网友:Bruce Robinson

我的问题是research 未使用page-research.php 而是使用archive.php

我不是通过“静态页面和自定义帖子类型不能有相同的slug”解决方案,而是在“设置->永久链接”中的仪表板上解决了这个问题。

这是在“Day and name”上,我把它改为“Numeric”,研究页面从page-research.php

SO网友:Neil Davidson

实现这一点的最基本方法是执行我所做的操作:在构建模板页面时,我会在它们前面加上“template\\uu0”。

因此,如果你想要一个团队。php模板,您可以查找template\\u团队的页面。php。

此外,您的页面上有您实际上不需要的代码。

我会将您的代码更改为:

 <?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(); ?>
我之所以要进行更改,是因为您实际上没有使用$temp,所以没有理由分配它。此外,当页面加载时,您没有任何对wp\\U查询的引用,即使有,您也不会在页面中的任何位置使用它。

您实例化了一个全新的查询(使用new关键字),就页面而言,这是页面上唯一的查询。因此,这是您需要重置的唯一查询。

实际发生的事情是你点击一个链接,并将你引导到“团队”页面。这将加载“template\\u teams.php”,并在页面加载后立即将所有变量分配给该页面的$post。$post内是您在WordPress文本编辑器中创建并将模板分配给的页面的实际内容。

现在,如果您需要在加载页面的默认查询之上添加一个不同的查询,您可以轻松地将变量$wp\\u query更改为与所需内容更相关的查询:

$custom_query_1 = new WP_Query();
$custom_query_1->query(\'post_type=teams&posts_per_page=7\');
然后,您可以在页面中的任何位置随时使用默认查询和自定义查询。每次循环后都可以使用清理函数wp\\u reset\\u query(),但is会清除所有查询。

为了避免清除任何自定义查询,只需将新查询放在需要的地方即可。

结束

相关推荐