wordpress获取发布类别不等于博客

时间:2014-06-13 12:36:30

标签: wordpress

我正在尝试获取不是博客的最新帖子。我知道如何按类别名称获取帖子,但如何获得不等于特定类别名称的帖子。这是我用于获取类别名称的代码

$query = array (
    'category_name' => 'Blog',
    'posts_per_page' => 1,
    'post_status' => array('publish')   
);

3 个答案:

答案 0 :(得分:0)

如法典(http://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters)所述,您可以使用'category__not_in'并将其输入您要排除的类别的ID。

$args = array(
    'category__not_in' => array($id), // Pass in one or more IDs here.
    'posts_per_page' => 1,
    'post_status' => 'publish', // no need to pass it in a array
    'orderby' => 'date' // Since you wanted the latest post, this is default value so not really needed
);

您可以通过在WP-backend中悬停类别链接找到该类别的ID,然后转到该类别,然后检查地址栏中的地址,它应如下所示:

/wp-admin/edit-tags.php?action=edit&taxonomy=category&tag_ID=2

答案 1 :(得分:0)

category_not_in个查询参数。要使用它,您需要要从结果中排除的类别的ID,而不是slug。

http://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters

$BlogObj = get_category_by_slug('Blog'); 
$query = array (
    'category_not_in' => array($BlogObj->term_id),
    'posts_per_page' => 1,
    'post_status' => array('publish')   
);

答案 2 :(得分:0)

你可以试试这个:

$query = array (
    'category_not_in' => array(get_cat_ID('Blog'),
    'posts_per_page' => 1,
    'post_status' => 'publish'   
);