标签页面仅显示10条帖子

时间:2013-11-18 作者:Romes

我对这个问题已经有一段时间了,我一辈子都想不出来。我正在使用多站点,不确定这是否与此有关,所以请记住这一点。

问题:

当单击帖子或自定义帖子类型上的标签时,我只得到WP设置的默认帖子数,结果是10篇帖子。分页显示在下一篇文章和以前的文章的底部,但当我单击任一链接时,都找不到第2页,它会将我发送到404页。应该显示的是常规帖子和自定义帖子类型的混合,但不管帖子类型如何,即使有数百篇,也只会显示10篇。

起初,我使用的是展示标签的第二十种方式get_template_part() 并重定向到循环。php页面。我有意识地消除了这个过程,并创建了自己的标签。php页面,并使用默认wordpress循环查询帖子。

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
然而,我不得不使用这段代码来查询所有帖子类型,而不仅仅是普通的帖子类型。

global $wp_query;
$args = array_merge( $wp_query->query, array( \'post_type\' => array(\'post, cool_tools, tribe_events\') ) );
query_posts( $args );
我的页面分页代码如下:

<div id="nav-below" class="navigation">
    <div class="nav-previous"><?php next_posts_link( __( \'<span class="meta-nav">&larr;</span> Older posts\', \'twentyten\' ) ); ?></div>
    <div class="nav-next"><?php previous_posts_link( __( \'Newer posts <span class="meta-nav">&rarr;</span>\', \'twentyten\' ) ); ?></div>
</div><!-- #nav-below -->
缺少页面的url为:

/tag/tagname/page/2/
有人能告诉我为什么WP找不到更多的标签吗?

**根据芯片的示例更新,下面是我现在如何设置的。

$paged = ( get_query_var(\'paged\') ) ? get_query_var(\'paged\') : 1;

$args = array(
    \'post_type\' => \'post\',
    \'tag_slug__and\' => $tagname,
    \'paged\' => $paged
);

$query = new WP_Query($args);

if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();
然而,当我点击底部较新的帖子时,我仍然会看到404页,没有找到第2页的标签。

2 个回复
SO网友:Chip Bennett

问题是query_posts(). 它会踩下默认查询,并终止分页。不使用query_posts(). 滤器$wp_querypre_get_posts 而是:

function wpse123674_pre_get_posts( $query ) {
    // Only modify the main query on the tag archive index
    if ( $query->is_main_query && $query->is_tag() ) {
        $query->set( \'post_type\', array(\'post, cool_tools, tribe_events\') );
    }
}
add_action( \'pre_get_posts\', \'wpse123674_pre_get_posts\' );
这属于functions.php. 在模板文件中,只需删除对任何查询修改的所有引用。

SO网友:T.Todua

我还建议,点击“PERMALINKS --> SAVE“再次刷新缓存。

结束

相关推荐

Query pages based on tags

在我正在开发的网站上,我添加了标记页面的功能。然后,应在查询中使用这些标记来检索标记的所有关联页面。在我的函数文件中-// Add tag support to Pages function tags_support_all() { register_taxonomy_for_object_type(\'post_tag\', \'page\'); } function tags_support_query($wp_query) { if ($wp_