同一分类术语中自定义帖子类型中的下一个和上一个链接

时间:2012-07-09 作者:Nick Albert Calib-og

我有一个自定义的帖子类型name->(\'portfolio\'), 具有分类名称\'portfolio_category\'.

我想要的是在它的单页文件上添加下一个和上一个链接,这是一个投资组合。php。当我单击其中一个链接时,它应该重定向到同一帖子类型和同一分类术语中的下一篇或上一篇帖子。

我用过next_post_link()previous_post_link() 但它似乎只适用于单个帖子,而不适用于单个自定义帖子类型。。

如有任何建议,将不胜感激。

4 个回复
SO网友:Nadeem Khan

previous_post_link()next_post_link() 与自定义帖子类型完美配合。您需要将此代码粘贴到单个customposttype中。php(在您的例子中是single portfolio.php):

<div class="previous-post-link">
                <?php previous_post_link(\'%link\', \'<< Previous Post\', $in_same_term = true, $excluded_terms = \'\', $taxonomy = \'the-custom-taxonomy-associated-with-your-custom-post-type\'); ?>                    
            </div>

            <div class="next-post-link">
                <?php next_post_link(\'%link\', \'Next Post >>\', $in_same_term = true, $excluded_terms = \'\', $taxonomy = \'the-custom-taxonomy-associated-with-your-custom-post-type\'); ?>                    
            </div> 

SO网友:Pieter Goosen

这个$taxonomy 两者的参数next_post_linkprevious_post_link 在Wordpress版本3.8中引入。

$in_same_term 参数设置为true,您需要设置$taxonomy 所需分类的参数。默认情况下,它设置为category. 回想起post_format 也是一种分类法

示例:

next_post_link( \'%link\', \'Next post in category\', TRUE, \' \', \'post_format\' );
只是一个注释,不要使用next_postprevious_post. 从Wordpress版本2.0.0开始,它已经被折旧了。看见wp-includes/deprecated.php#L121wp-includes/deprecated.php#L158

EDIT

单个帖子链接将在同一帖子类型内的帖子之间自动分页,因为当前帖子的帖子类型用于检索相邻帖子。检查源代码,get_adjacent_post() 它被下一个和上一个帖子链接使用。请特别注意第1550行(目前适用于4.1版)

1550    $where = apply_filters( "get_{$adjacent}_post_where", $wpdb->prepare( "WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = \'publish\' $where", $current_post_date, $post->post_type ), $in_same_term, $excluded_terms );

SO网友:Brad Dalton

将此代码添加到您的单个cpt。php文件。

<?php previous_post_link(\'%link\', \'Previous in CPT\', TRUE) ?>
<?php next_post_link(\'%link\', \'Next in CPT\', TRUE) ?>
其中,cpt是自定义帖子类型的名称。

SO网友:Behzad G.

尝试使用缩略图:

<?php $prevPost = get_previous_post(); if($prevPost) { ?>
    <li class="previous">
    <?php $prevthumbnail = get_the_post_thumbnail($prevPost->ID, array(80,80) ); ?>
        <?php previous_post_link(\'%link\', $prevthumbnail . \'<strong>Prev</strong> <span>%title</span>\', TRUE); ?>
    </li>
<?php } $nextPost = get_next_post(); if($nextPost) { ?>
    <li class="next">
    <?php $nextthumbnail = get_the_post_thumbnail($nextPost->ID, array(80,80) ); ?>
        <?php next_post_link(\'%link\', $nextthumbnail . \'<strong>Next</strong> <span>%title</span>\', TRUE); ?>
    </li>
<?php } ?>

结束

相关推荐