WordPress 隐藏特定文章的综合教程
在WordPress中,有时我们需要隐藏特定的文章。在这篇教程中,我们将详细解释如何在首页、搜索结果、小工具和全站中隐藏一篇或多篇文章。
1. 基础函数:隐藏特定文章
首先,我们使用 pre_get_posts
钩子来修改查询。基本的代码如下:
function exclude_specific_posts($query) {
if ($query->is_main_query()) { // 确保只针对主查询
$query->set('post__not_in', array(ID1, ID2)); // 替换为要隐藏的文章ID
}
}
add_action('pre_get_posts', 'exclude_specific_posts');
说明:
is_main_query()
:确保只对主查询进行修改,避免影响小工具或其他查询。
2. 在首页隐藏文章
如果您只想在首页隐藏特定文章,可以将条件设置为 is_home()
:
function exclude_posts_from_home($query) {
if ($query->is_home() && $query->is_main_query()) {
$query->set('post__not_in', array(ID1, ID2)); // 替换为要隐藏的文章ID
}
}
add_action('pre_get_posts', 'exclude_posts_from_home');
3. 在搜索结果中隐藏文章
如果您希望在搜索结果中也隐藏特定文章,可以使用以下代码:
function exclude_posts_from_search($query) {
if ($query->is_search() && $query->is_main_query()) {
$query->set('post__not_in', array(ID1, ID2)); // 替换为要隐藏的文章ID
}
}
add_action('pre_get_posts', 'exclude_posts_from_search');
4. 在小工具中隐藏文章
要在小工具(例如侧边栏小工具)中隐藏特定文章,您可以在主查询中添加以下条件:
function exclude_posts_from_widgets($query) {
if ($query->is_main_query() && (is_active_widget(false, false, 'your_widget_id', true))) {
$query->set('post__not_in', array(ID1, ID2)); // 替换为要隐藏的文章ID
}
}
add_action('pre_get_posts', 'exclude_posts_from_widgets');
说明:
is_active_widget()
:检查特定小工具是否处于活动状态。
5. 分类页隐藏文章
要在分类页面隐藏特定文章,可以在 functions.php
中添加如下代码:
function exclude_posts_from_category($query) {
if ($query->is_category() && $query->is_main_query()) {
$query->set('post__not_in', array(ID1, ID2)); // 替换为要隐藏的文章ID
}
}
add_action('pre_get_posts', 'exclude_posts_from_category');
6. 全站隐藏文章
如果您想在全站范围内隐藏特定文章,只需将 is_home()
和 is_search()
的条件去掉,直接针对所有查询:
function exclude_posts_from_all($query) {
if ($query->is_main_query()) {
$query->set('post__not_in', array(ID1, ID2)); // 替换为要隐藏的文章ID
}
}
add_action('pre_get_posts', 'exclude_posts_from_all');
总结
以上示例展示了如何根据不同条件隐藏特定文章。以下是需要替换的地方:
- ID1、ID2:替换为您要隐藏的文章的实际ID。
实用建议
- 备份:在修改
functions.php
文件之前,请务必备份您的网站,以防止任何错误导致网站崩溃。 - 测试:在实施更改后,务必测试网站的各个部分,确保隐藏功能正常工作。
通过以上方法,可以灵活地在首页、搜索结果、分类页面和小工具中隐藏特定文章。只需将文章ID替换为要隐藏的实际ID,即可完成设置。
新手也能轻松理解和操作Wordpress隐藏特定文章。希望这篇教程对您有所帮助!
拓展学习:如何在wordpress隐藏特定分类
[insert_post_link id=”2106″]