I have a custom post type name->('portfolio')
, with a taxonomy name 'portfolio_category'
.
What I want is to add next and previous links on its single page file which is single-portfolio.php. When I click either of the links, it should redirect to the next or previous post in the same post type and in the same taxonomy term.
I used next_post_link()
and previous_post_link()
but it seems that it only works in single post but not in single custom post type..
Any suggestions will greatly be appreciated.
I have a custom post type name->('portfolio')
, with a taxonomy name 'portfolio_category'
.
What I want is to add next and previous links on its single page file which is single-portfolio.php. When I click either of the links, it should redirect to the next or previous post in the same post type and in the same taxonomy term.
I used next_post_link()
and previous_post_link()
but it seems that it only works in single post but not in single custom post type..
Any suggestions will greatly be appreciated.
Share Improve this question edited Aug 10, 2014 at 15:37 Pieter Goosen 55.4k23 gold badges116 silver badges210 bronze badges asked Jul 9, 2012 at 5:46 Nick Albert Calib-ogNick Albert Calib-og 311 gold badge1 silver badge2 bronze badges 1- I can recommend the following plugin, next-previous-post-link-plus-for-wordpress I'm using it with 3.5.x without any problems. – Nicolai Grossherr Commented Jul 2, 2013 at 13:53
4 Answers
Reset to default 2previous_post_link() and next_post_link() work perfectly with custom post types. You need to paste this code in your single-customposttype.php (which in your case is 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>
The $taxonomy
parameter for both next_post_link
and previous_post_link
was introduced in Wordpress version 3.8.
When the $in_same_term
parameter is set to true, you need to set the $taxonomy
parameter to the desired taxonomy. By default, it is set to category
. Remember, post_format
is also a taxonomy
Example:
next_post_link( '%link', 'Next post in category', TRUE, ' ', 'post_format' );
Just a note, do not use next_post
and previous_post
. It has already being depreciated as from Wordpress version 2.0.0. See wp-includes/deprecated.php#L121 and wp-includes/deprecated.php#L158
EDIT
The single post links will automatically page between posts within the same post type as the current post's post type is used to retrieve the adjacent posts. Check the source code, get_adjacent_post()
which is used by the next and previous post links. Pay particular attention to line 1550 ( currently for version 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 );
Add this code to your single-cpt.php file.
<?php previous_post_link('%link', 'Previous in CPT', TRUE) ?>
<?php next_post_link('%link', 'Next in CPT', TRUE) ?>
Where cpt is the name of your custom post type.
Try this is with thumbnail:
<?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 } ?>
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745115221a4612086.html
评论列表(0条)