不允许此MySQL查询中的类别

时间:2011-03-03 作者:markratledge

我正在尝试修改一个插件,该插件生成一个归档列表,以便它只显示一个类别,使其成为一个单一类别的归档。

旧版本的插件使用了get\\u posts查询,因此很容易禁止帖子类别:

$rawposts = get_posts( \'numberposts=-1&category=-4,-6,-7,-9\' );
新版本的插件使用该数据库查询:

SELECT ID, post_date, post_date_gmt, comment_status, comment_count FROM 
$wpdb->posts WHERE post_status = \'publish\' AND post_type = \'post\' AND post_password =
如何从数据库查询中禁用多个类别?

1 个回复
最合适的回答,由SO网友:scribu 整理而成

您可以使用WP 3.1中引入的get\\u tax\\u sql()函数:

$tax_query = array(
  array(
    \'taxonomy\' => \'category\',
    \'terms\' => array( 4, 6, 7, 9 ),
    \'operator\' => \'NOT IN\'
  )
);

$clauses = get_tax_sql( $tax_query, $wpdb->posts, \'ID\' );

...
"SELECT ID, post_date, post_date_gmt, comment_status, comment_count
FROM $wpdb->posts {$clauses[\'join\']}
WHERE post_status = \'publish\'
AND post_type = \'post\'
{$clauses[\'where\']}
"
...
(未测试)

结束

相关推荐

WordPress 3.1与jQuery Mobile不兼容吗?

我最近更新到WordPress 3.1,更新后,发生了一些非常有趣的事情。链接变得不可点击——点击任何链接都不会导致任何事情发生。有趣的是,所有jQuery的东西都仍然有效。删除jQuery Mobile脚本可以解决这个问题。生成的错误为:Error: uncaught exception: [Exception... \"Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIXMLHttpRequest.open