【问题标题】:WordPress: exclude post category from pagination via functions.phpWordPress:通过functions.php从分页中排除帖子类别
【发布时间】:2021-08-07 15:08:07
【问题描述】:

WordPress,我希望分页跳过某些帖子类别。

我有两个包含博客文章的页面。一页是常规的WordPress 博客页面。它显示除一个类别之外的所有博客文章。第二页仅显示这一类别的博客文章。到目前为止,一切都很好。我通过 Elementor query 这个,它工作得很好。

现在,当我点击这两个博客页面中的任何一个的分页时,它只会浏览所有博客文章。

我想要达到的结果是常规博客页面上的分页会跳过该排除类别ID 43 的所有帖子。在第二个博客页面(仅显示类别ID 43)上,分页应该只浏览类别ID 43 中的帖子。

this 可以通过functions.php 实现吗?

我像这样从博客页面中隐藏了特殊类别:

function exclude_category( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
    $query->set( 'cat', '-43' );
    }
}
add_action( 'pre_get_posts', 'exclude_category' );

编辑:

我在WordPress 文档中为下一个和上一个链接找到了这两个函数:(12)

// next
    function next_post_link( $format = '%link »', $link = '%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ) {
        echo get_next_post_link( $format, $link, $in_same_term, $excluded_terms, $taxonomy );
    }

// previous
    function previous_post_link( $format = '« %link', $link = '%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ) {
        echo get_previous_post_link( $format, $link, $in_same_term, $excluded_terms, $taxonomy );
    }

我可以通过 functions.php 和 if page ID is... query 连接到它们,并在 $excluded_terms = '' 中使用类别名称吗?

【问题讨论】:

    标签: php wordpress


    【解决方案1】:
    remove_filter('pre_term_description', 'wp_filter_kses');
    
    function exclude_category($query) {
    
    if ( $query->is_home() ) {
    
    $query->set( 'cat', '-43' );
    }
    
    return $query;
    }
    
    
    add_filter( 'pre_get_posts', 'exclude_category' );
    

    【讨论】:

    • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值
    • 谢谢!不过,这对我不起作用。所有帖子仍然显示在分页中。
    • 有时分类法的更改需要在 wordpress 中进行刷新,您可以在“设置”、“永久链接”中执行此操作,然后只需单击“保存”而不进行任何更改。我已经在几台服务器上针对不同主题测试了这段代码,它总是有效。然而,这是 functions.php 中的一条规则,可以被任何其他文件中的其他代码阻止。
    猜你喜欢
    • 2013-10-29
    • 2021-11-16
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多