二十个十五:按菜单顺序排列的相邻帖子

时间:2016-03-11 作者:Thomas

我正在使用“二十点十五(儿童)”主题,并希望显示上一篇/下一篇文章的链接,以及我的分层自定义文章类型的背景图像。

它正在显示,不幸的是,顺序似乎完全错误。我想这是因为帖子是按日期选择的,而不是按菜单顺序?

我希望下一篇/上一篇帖子就像我在后端订购的一样&;菜单,并且应该显示它,无论它是当前帖子的父级、子级还是同级。

这方面的代码在单曲中。php:

the_post_navigation( array(
    \'next_text\' => \'<span class="meta-nav" aria-hidden="true">\' . __( \'Next\', \'twentyfifteen\' ) . \'</span> \' .
        \'<span class="screen-reader-text">\' . __( \'Next post:\', \'twentyfifteen\' ) . \'</span> \' .
        \'<span class="post-title">%title</span>\',
    \'prev_text\' => \'<span class="meta-nav" aria-hidden="true">\' . __( \'Previous\', \'twentyfifteen\' ) . \'</span> \' .
        \'<span class="screen-reader-text">\' . __( \'Previous post:\', \'twentyfifteen\' ) . \'</span> \' .
        \'<span class="post-title">%title</span>\',
) );
我怎样才能按正确的顺序得到帖子?

1 个回复
SO网友:Pieter Goosen

根据OP编辑,this question/answers 解决了问题

原始答案

the_post_navigation(), 一直到其核心,使用get_adjacent_post() 返回并显示当前查看帖子的下一篇和上一篇帖子。

默认情况下,这些相邻的帖子按发布日期返回。我们可以通过过滤相关的ORDERBY SQL查询的子句。我们将使用的过滤器是get_{$adjacent}_post_sort filter 动态{$adjacent} 零件参考nextprevious 链接

以下是过滤器的外观:

apply_filters( "get_{$adjacent}_post_sort", "ORDER BY p.post_date $order LIMIT 1", $post );
因此,在自定义插件或主题的函数文件中,我们可以执行以下操作:(NOTE: 这是未经测试的,我们只会在显示特定帖子类型时添加过滤器

add_filter( \'get_next_post_sort\',     \'wpse_220361_adjacent_post_sort\', 11, 2 );
add_filter( \'get_previous_post_sort\', \'wpse_220361_adjacent_post_sort\', 11, 2 );
function wpse_220361_adjacent_post_sort ( $orderby, $post )
{
    // Make sure we are on our desired post type
    if ( \'MY_CUSTOM_POST_TYPE_SLUG\' !== $post->post_type )
        return $orderby;

    // We are on the desired post type, lets alter the SQL
    $orderby = str_replace( \'post_date\', \'menu_order\', $orderby );

    return $orderby;
}

相关推荐

Next/Previous post navigation

嘿,伙计们,我想让我的下一个和上一个链接只针对一个类别,而不是所有类别,所以当你在该类别的最后一篇文章上停止时,现在它仍在另一个类别中,无法在我的单曲中定义post\\u nav\\u链接。php。。。。你能帮帮我吗?这是我单身的照片。php对不起,我的英语不好,谢谢。