我的系统中有一些自动生成的帖子,wp_posts
表有附加字段auto
,默认情况下此字段为NULL,但对于我的特定帖子,它有一些值。我不会在主页上显示这样的帖子,我该如何隐藏它们?
我想我需要这样的东西:
function exclude_post($query) {
if ($query->is_home) {
...
}
return $query;
}
add_filter('pre_get_posts', 'exclude_post');
如何添加SQL "auto IS NOT NULL"
等条件?
答案 0 :(得分:0)
如果您关注其他用户的建议并更改为发布元而不是帖子表中的其他列,则可以添加:
$query->set( 'meta_query', array(
array(
'key' => 'meta_key_for_auto',
'compare' => 'NOT EXISTS',
),
) );
如果您要坚持使用posts表中的列,那么pre_get_posts可能不是最好的钩子。而是看看posts_where。 http://codex.wordpress.org/Plugin_API/Filter_Reference/posts_where