繁体   English   中英

仅在一个类别中的WordPress上一个和下一个-具有多个类别的帖子

[英]WordPress Previous and Next in only one Category - posts with multiple Categories

要单击下一篇或上一篇文章,请使用此代码

<?php the_post_navigation( array (
            'next_text' => '<span class="meta-nav">' . __( 'Previous', 'neubau' ) . '</span> ' .
                '<span class="screen-reader-text">' . __( 'Previous Post', 'neubau' ) . '</span> ',
            'prev_text' => '<span class="meta-nav">' . __( 'Next', 'neubau' ) . '</span> ' .
                '<span class="screen-reader-text">' . __( 'Next Post', 'neubau' ) . '</span> ',
            'in_same_term' => 'true',
        ) ); ?>

'in_same_term'=>'true'用于打开同一类别中的下一个或上一个帖子。 但这不适用于多个类别。

我的帖子分为三类: Portfolio-1,Portfolio-2,Portfolio-3 为了在首页上显示其中的一些帖子,我添加了第四类: home 在一个类别(例如Portfolio-1)中,我单击下一个或上一个帖子链接。 如果下一个或下一个帖子有两类( 投资组合1家庭 ),我重定向到下一篇文章/以前的帖子的 -而不是在下一篇/以前的帖子组合-1。

我如何才能留在一个类别(例如Portfolio-1 )中?

我发现一些网站存在类似问题,但无法将解决方案转移到我的代码中。

感谢帮助。

文件“ link-template.php”似乎是进行代码更改的正确文件。

function get_the_post_navigation( $args = array() ) {
    $args = wp_parse_args( $args, array(
        'prev_text'          => '%title',
        'next_text'          => '%title',
        'in_same_term'       => true,
        'excluded_terms'     => '7,37',
        'taxonomy'           => 'category',
        'screen_reader_text' => __( 'Post navigation' ),
    ) );

    $navigation = '';

    $previous = get_previous_post_link(
        '<div class="nav-previous">%link</div>',
        $args['prev_text'],
        $args['in_same_term'],
        $args['excluded_terms'],
        $args['taxonomy']
    );

    $next = get_next_post_link(
        '<div class="nav-next">%link</div>',
        $args['next_text'],
        $args['in_same_term'],
        $args['excluded_terms'],
        $args['taxonomy']
    );

    // Only add markup if there's somewhere to navigate to.
    if ( $previous || $next ) {
        $navigation = _navigation_markup( $previous . $next, 'post-navigation', $args['screen_reader_text'] );
    }

    return $navigation;
}

这似乎是重要的一段:

function get_the_post_navigation( $args = array() ) {
    $args = wp_parse_args( $args, array(
        'prev_text'          => '%title',
        'next_text'          => '%title',
        'in_same_term'       => true,
        'excluded_terms'     => '7',
        'taxonomy'           => 'category',
        'screen_reader_text' => __( 'Post navigation' ),
    ) );

我将“ in_same_term”设置为“ true”。 (为了测试“ link-template.php”是否是正确的文件,我从文件“ single.php”中删除了以前添加的代码“ in_same_term” =>“ true”)。 我为“ home”类别添加了“ excluded_terms”“ 7”。 结果是上一个/下一个保留在一个类别内。 但是不显示具有“ portfolio-1”和“ home”两个类别的帖子。

下一步:如何包含“ portfolio-1”和“ home”两个类别的帖子,而排除“ home”类别的其他帖子?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM