1

我的系统中有一些自动生成的帖子,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"

4

1 回答 1

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

于 2013-12-20T09:09:09.737 回答