
本文将指导你如何在 WordPress 的 archive.php 页面中排除特定分类的文章。正如上面摘要所述,我们将利用 WordPress 提供的钩子和函数来修改默认的查询行为,从而达到过滤特定分类文章的目的。
pre_get_posts 是一个强大的钩子,允许你在 WordPress 执行主查询之前修改查询参数。我们可以利用这个钩子来排除特定分类的文章。以下是具体步骤:
打开 functions.php 文件:
找到你主题的 functions.php 文件。通常位于 wp-content/themes/your-theme-name/functions.php。 注意:强烈建议使用子主题,避免直接修改父主题的 functions.php 文件,以免主题更新导致修改丢失。
添加以下代码:
function exclude_category( $query ) {
if ( $query->is_archive() && $query->is_main_query() ) {
$query->set( 'cat', '-3' ); // 将 '3' 替换为你想要排除的分类 ID
}
}
add_action( 'pre_get_posts', 'exclude_category' );代码解释:
立即学习“PHP免费学习笔记(深入)”;
保存 functions.php 文件。
刷新你的归档页面。
现在,你应该看不到 ID 为 3 的分类下的文章了。
如果需要排除多个分类,只需在 cat 参数中使用逗号分隔的负数 ID 列表即可。例如,要排除 ID 为 3、4 和 5 的分类,代码如下:
function exclude_category( $query ) {
if ( $query->is_archive() && $query->is_main_query() ) {
$query->set( 'cat', '-3,-4,-5' );
}
}
add_action( 'pre_get_posts', 'exclude_category' );如果你想只显示特定分类,而不是排除某些分类,可以将 cat 参数设置为正数 ID 列表。例如,要只显示 ID 为 54 的分类,代码如下:
function exclude_category( $query ) {
if ( $query->is_archive() && $query->is_main_query() ) {
$query->set( 'cat', '54' );
}
}
add_action( 'pre_get_posts', 'exclude_category' );通过使用 pre_get_posts 钩子和自定义函数,你可以轻松地控制 WordPress 归档页面上显示的内容。 无论是排除特定分类,还是只显示特定分类,都可以通过修改查询参数来实现。 记住,理解 WordPress 的查询机制和钩子系统对于自定义 WordPress 网站至关重要。 希望本教程能够帮助你更好地管理你的 WordPress 网站。
以上就是WordPress 教程:从 Archive.php 中排除特定分类的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号