自定义帖子类型,包含相同分类术语中的下一个和上一个帖子

时间:2013-11-07 22:23:01

标签: wordpress custom-post-type taxonomy

好的,我搜索并搜索了stackoverflow和谷歌,但找不到我要找的东西。我正在寻找一种方法让我的下一个和上一个按钮链接到我在同一帖子类型术语中的帖子。

我有一个名为“Projects”的帖子类型,分类是“projects_category”。我在该分类法下有几个术语,当我查看单个项目帖子时,我希望能够在该术语中单击下一个和上一个。有没有办法做到这一点?

更新(2013年11月13日)(再次):

这就是我现在所拥有的。

<?php
$projectCat = wp_get_post_terms($postid,"projects_category");
if(count($projectCat)){
$projectC = $projectCat[0]->slug;
}
else{
$projectC = "";
}
$args = array(

'post_type'=>'project_post',
'showposts' => -1,
'tax_query' => array(
array(
        'taxonomy' => 'projects_category',
        'terms' => '{$projectC}',  //define your category id or slug here
            'field' => 'slug',
        )
),
'order'=>'ASC', 
);

$postlist = get_posts($args);
$posts = array();
foreach ($postlist as $post) {
$posts[] += $post->ID;
}

$prev_post = get_previous_post(); 
$prevID = $prev_post->ID ;
?>
<?php 
$next_post = get_next_post();
$nextID = $next_post->ID ;
?>          

<?php if (!empty($prevID)) { ?>

<li><a href="<?php echo get_permalink($prevID); ?>"
title="<?php echo get_the_title($prevID) ." ". $projectC; ?>" 
class="p_prev widget_anim"><span></span>Previous</a>
</li>
<?php }

if (!empty($nextID)) { ?>
<li><a href="<?php echo get_permalink($nextID); ?>" 
title="<?php echo get_the_title($nextID) ." ". $projectC;; ?>"  
class="p_next widget_anim">Next<span></span></a>
</li>
<?php }  

wp_reset_postdata();
?>

我正在获取单个project_post页面上找到的当前术语,并且查询似乎抓住了它,但查询并未跟随它需要保留在术语中。它正在从我拥有的其他术语中提取帖子。即使我在查询中将确切的术语替换为$ projectC,它仍然会为我提供下一个和上一个的错误帖子。谁能帮我?到目前为止,我对以前的答案表示感谢。

3 个答案:

答案 0 :(得分:0)

在子主题中创建functions.php,以免被更新覆盖。然后 编写一个返回帖子数组的函数。食典委告诉您如何做您的要求<?php $project_posts_array = get_posts( $args ); ?>。然后在链接标记中调用自定义帖子类型中的函数。

这是在同一个Codex页面上。

    <div class="alignleft">    
    <a href="<?php echo get_permalink($prevID); ?>"
    title="<?php echo get_the_title($prevID); ?>">Previous</a>
    </div>
    <?php }
    if (!empty($nextID)) { ?>
    <div class="alignright">
    <a href="<?php echo get_permalink($nextID); ?>" 
     title="<?php echo get_the_title($nextID); ?>">Next</a>
    </div>

答案 1 :(得分:0)

<?php
                 $args = array(
                'tax_query' => array(
                    array(
                            'taxonomy' => 'projects_category',
                            'field' => 'id',
                            'terms' => '2'  //define your category id hear
                            )
                    ),
                    'post_type'=>'project_post',
                    'order'=>'ASC',
                    'posts_per_page'=>-1
            );

                        $postlist = get_posts($args);
$posts = array();
foreach ($postlist as $post) {
   $posts[] += $post->ID;
}
                <?php
        $prev_post = get_previous_post(); 
        $prevID = $prev_post->ID ;
?>
<?php 
        $next_post = get_next_post();
        $nextID = $next_post->ID ;
?>          

    <?php if (!empty($prevID)) { ?>

    <li><a href="<?php echo get_permalink($prevID); ?>"
            title="<?php echo get_the_title($prevID); ?>" 
            class="p_prev widget_anim">Previous</a>
            </li>
    <?php }

    if (!empty($nextID)) { ?>
        <li><a href="<?php echo get_permalink($nextID); ?>" 
            title="<?php echo get_the_title($nextID); ?>"  
            class="p_next widget_anim">Next</a>
            </li>
    <?php }  

    wp_reset_postdata();
?>

答案 2 :(得分:0)

有同样的问题,我在这里找到了我的解决方案:http://bucketpress.com/next-and-previous-post-link-in-same-custom-taxonomy

希望它适合你!