我有一个WordPress网站。我的网站上有5-6个类别。其中一个是过期交易,我不想在主页上看到,但同时,如果有人从过滤条中点击该类别,那么只有与该类别相关的帖子应该是可见的。
我希望在主页过期后隐藏过期交易的帖子,而不是删除它们,我想要隐藏,只有当类别从位于帖子上方的过滤条上过滤后才能看到它们主页。
答案 0 :(得分:0)
创建(将17更改为上面标识的类别ID),上传并激活以下插件(或将代码添加到现有网站功能插件)
<?php
/*
Plugin Name: Theme independent functions
Description: Not tested
Version: 1.0
*/
function exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-17' );
}
}
add_action( 'pre_get_posts', 'exclude_category' );
?>
任何类别选择窗口小部件仍应有效,并仍显示已排除类别的帖子。您尚未确定菜单栏过滤器代码,但您可以对过期交易类别的链接进行硬编码,例如<a href="/?cat=17">etc
并根据需要重写WP URL。
加成:
用于排除单独指定的帖子的代码,其中为具有例如条目的帖子设置了自定义字段“no_recent_post_list” “TRUE”。
function my_exclude_post($query) {
if ( $query->is_main_query() && $query->is_home() ) {
$myargs = array(
array(
'key' => 'no_recent_post_list',
'value'=>false, // ONLY REQD PRE 3.9
'compare' => 'NOT EXISTS'
)
);
$query->set( 'meta_query', $myargs);
}
}
add_action( 'pre_get_posts', 'my_exclude_post');
上面第一个示例代码的信用:Wordpress Codex但我丢失了链接lol。