分页和tag.php不起作用

时间:2021-10-01 作者:Fernando Souza

我使用“taxonomies”=>;在$args数组中为自定义帖子类型添加了标记;数组(“post\\u标记”)。Im在标签上使用以下代码。php循环来自某个标记的帖子。它工作得很好,但分页不会很好。当我尝试转到第2页时,它给了我一个404错误。如果我取出自定义查询,它将不会循环自定义帖子类型的帖子。我怎样才能修复它?

<?php
$term = get_queried_object();
$slugTerm = $term->slug;
$nameTerm = $term->name;
        $paged = ( get_query_var(\'paged\') ) ? get_query_var(\'paged\') : 1;
        $query_args = array(
          \'post_type\' => \'blog\',
          \'paged\' => $paged,
          \'tax_query\' => array(
              array (
                  \'taxonomy\' => \'post_tag\',
                  \'field\' => \'name\',
                  \'terms\' => $nameTerm,
              )
          ),
        );
        $query = new WP_Query( $query_args );
        if($query -> have_posts()):while($query -> have_posts()):$query -> the_post();
    

  ?>

    POST CONTENT

  
  <?php endwhile; ?>
  <div class="pagination">
    <?php if(function_exists(\'wp_pagenavi\')) { wp_pagenavi(array( \'query\' => $query ) ); } ?>
  </div>
  <?php endif; ?>

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

这可能不起作用的一个原因是您没有定义$nameTerm 因此,您可能甚至没有查询当前标记的正确帖子。

主要原因是这个标签。php不应该有自定义查询。WordPress中的主模板文件应使用The Loop 显示帖子。WordPress已经查询了正确的帖子。

<?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
        POST CONTENT
    <?php endwhile; ?>

    <div class="pagination">
        <?php if ( function_exists( \'wp_pagenavi\' ) ) { wp_pagenavi(); } ?>
    </div>
<?php endif; ?>
这是我在这里看到的最常见的开发错误。如果你正在学习如何创建主题,那么遵循the official documentation, 参考默认的二十个X主题(例如,二十二个一),并找到一个著名的教程。如果您直接跳到搜索;如何按标签查询帖子;,例如,不检查您是否需要对标记执行此操作。php模板,然后您将获得错误问题的解决方案。

相关推荐

Can't Add Pagination

我无法添加分页来在页面之间划分帖子并在页面之间导航。目前所有20篇帖子我都有一次加载。我想在我的页面底部添加分页,并在5之前查看帖子。我有一个自定义的帖子类型,我将其定义为Project。我有两页。主页和日志。主页以我的项目帖子类型为特征,日志以我的常规博客帖子为特征。我希望这两页都有分页。我的当前索引。php是我的主页,如下所示:<?php get_header(); ?> <?php get_footer(); ?> <div class=\"p