【问题标题】:Next and previous post link in same terms custom taxonomy下一个和上一个帖子链接在相同的术语自定义分类法
【发布时间】:2014-12-17 10:20:08
【问题描述】:

我在我的custom post => blog 中创建了一个custom taxonomy => cat-blogcat-blog 有4 个terms,每个terms 都有属于该term 的帖子列表

术语示例:

- 城市更新 (4 post belong)
- 家居提示 (6 post belong)
- 房地产指南 (8 post belong)
- 房地产行业 (9 post belong)

并使用此查询

<?php
     $query = new WP_Query(array('posts_per_page' => 2, 'post_type' => 'blog', 'blog-cat' => get_the_term_list( $post->ID, 'blog-cat' )));
     while ($query->have_posts()) : $query->the_post();
     ?>

   <?php 
// content here
?>

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

 ?>

在同一类别中显示 2 个帖子, 而且我只想将nextprev 分页,这样我就可以浏览帖子的其余部分,属于那个term

【问题讨论】:

  • 这是在页面模板上吗?
  • yes... 上面的 WP_Query 用于按类别显示帖子我将该代码放在 taxonomy.php

标签: php wordpress custom-post-type taxonomy


【解决方案1】:

永远不要将主查询更改为存档页面和主页上的自定义查询。主查询已经做了你想做的事。尝试运行自定义查询以尝试获得相同的结果就像重新发明轮子一样。它还会导致分页问题

解决方案

  • 首先,删除您的自定义查询,然后返回主循环。以下是您的 taxonomy.php 中所需要的全部内容

    if( have_posts() ) {
       while( have_posts() ) {
         the_post();
    
         //REST OF YOUR LOOP
    
       }
    }
    
  • 如果您需要更改主查询,请将pre_get_postsconditional tags 结合使用。例如,如果您需要在分类页面上每页 2 个帖子,请在 functions.php 中执行以下操作

    function so26499451_custom_ppp( $query ) {
        if ( !is_admin() && $query->is_tax() && $query->is_main_query() ) {
            $query->set( 'posts_per_page', '2' );
        }
    }
    add_action( 'pre_get_posts', 'so26499451_custom_ppp' );
    

您现在可以正常分页,没有任何问题。您现在将看到您在 taxonomy.php 上的每个页面上单击的特定术语的两个帖子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多