分辨
我正在详尽地搜索提供下一个和上一个帖子链接的方法,其方式与单个帖子中通常出现的方式不同。
通过DEFAULT:
按时间顺序排列
指向所有博客类别的帖子的链接
但我需要它:
ALPHABETICALLY ordered
仅链接到同一类别的帖子
我不是开发人员,但我发现了两个代码,我想如果我能合并两个问题就可以解决了。有人可以帮帮我吗?
代码1 - 按字母顺序转动下一个/上一个链接,但不是来自同一类别(source)
{{ page.richtextpage.content|richtext_filters|safe }}
{{ page.richtextpage.content }}
代码2 - 从同一类别转换下一个/上一个链接,但不按字母顺序(source)
function filter_next_post_sort($sort) {
$sort = "ORDER BY p.post_title ASC LIMIT 1";
return $sort;
}
function filter_next_post_where($where) {
global $post, $wpdb;
return $wpdb->prepare("WHERE p.post_title > '%s' AND p.post_type = '". get_post_type($post)."' AND p.post_status = 'publish'",$post->post_title);
}
function filter_previous_post_sort($sort) {
$sort = "ORDER BY p.post_title DESC LIMIT 1";
return $sort;
}
function filter_previous_post_where($where) {
global $post, $wpdb;
return $wpdb->prepare("WHERE p.post_title < '%s' AND p.post_type = '". get_post_type($post)."' AND p.post_status = 'publish'",$post->post_title);
}
add_filter('get_next_post_sort', 'filter_next_post_sort');
add_filter('get_next_post_where', 'filter_next_post_where');
add_filter('get_previous_post_sort', 'filter_previous_post_sort');
add_filter('get_previous_post_where', 'filter_previous_post_where');
经过数周的搜索解决方案,这里是FINAL ANSWER!
感谢您的帮助!
答案 0 :(得分:0)
您应该使用get_adjacent_post();
这是为您提供的下一篇或上一篇文章。
这是上一篇文章:
<?php
$prev_post = get_adjacent_post( true, '', true, 'taxonomy_slug' ); ?>
if ( is_a( $prev_post, 'WP_Post' ) ) {
?>
<a href="<?php echo get_permalink( $prev_post->ID ); ?>"><?php echo get_the_title( $prev_post->ID ); ?></a>
<?php } ?>
这是下一篇文章:
<?php
$next_post = get_adjacent_post( true, '', false, 'taxonomy_slug' );
if ( is_a( $next_post, 'WP_Post' ) ) {
?>
<a href="<?php echo get_permalink( $next_post->ID ); ?>"><?php echo get_the_title( $next_post->ID ); ?></a>
<?php } ?>