【问题标题】:Restricts few categories from the pages in wordpress限制 wordpress 页面中的几个类别
【发布时间】:2019-10-23 17:03:04
【问题描述】:

我在两个页面中使用了“最近的帖子”,我需要限制这两个页面中具有特定类别的一些帖子。我在functions.php 中添加了以下代码并已保存。但预期的结果并没有到来。 主页 (ID - 12) 和诗歌页面 (ID - 8) 是我添加了限制的页面 772 和 152 是我想从上述页面中限制的类别 ID。

function excludeCat($query) {
    $page = get_query_var('paged', 1);

    $exclude = [
        12 => '-772',
        8  => '-152'
    ];

    if ($query->is_home && isset($exclude[$page])) {
         $query->set('cat', $exclude[$page]);
    }
    return $query;
}
add_filter('pre_get_posts', 'excludeCat');

请告知代码

【问题讨论】:

  • 您需要在 $query->set('cat', '-772,-152'); 这样的 set 方法中以逗号分隔传递 id。您也可以参考我附在此处的链接:codex.wordpress.org/Plugin_API/Action_Reference/…
  • @SohilChamadia 感谢您的回复.......我已经添加了functions.php中提供的链接中的代码,这些类别仍然显示在主页中...... .然后我尝试了您的第二个示例以仅显示一个类别。那也不适合我。所有类别都在主页中列出...在这种情况下可能是什么问题?>
  • 你能告诉我你做了什么来获得“最近的帖子”,并请检查你传递的类别 ID 是否正确?
  • @SohilChamadia 为了在主页上获取最新帖子,我创建了一个页面,然后在页面中添加了“最近的帖子”小部件。少数类别的帖子不应出现在此页面上。这就是为什么我希望限制页面中的特定类别帖子

标签: php wordpress


【解决方案1】:

看看下面的代码,把它写在“functions.php”文件中。它可能对你有帮助。

add_filter( 'widget_posts_args', 'my_widget_posts_args');
function my_widget_posts_args($args) {
        return array(
            'cat' => array(-5,-4) // pass the term id of category which you want to exclude with prefix "-".
             );

}

【讨论】:

    猜你喜欢
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多