【发布时间】: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 为了在主页上获取最新帖子,我创建了一个页面,然后在页面中添加了“最近的帖子”小部件。少数类别的帖子不应出现在此页面上。这就是为什么我希望限制页面中的特定类别帖子