wp remove query

时间:2012-03-28 作者:user416096

我想删除wp 3.1中的某个查询

add_filter( \'query\', \'remove_delete_7_day_draft_queries\' ); 

function remove_delete_7_day_draft_queries( $query ) { 
    global $wpdb;
    $q = "SELECT ID FROM $wpdb->posts WHERE post_status = \'auto-draft\' AND DATE_SUB( NOW(), INTERVAL 7 DAY ) > post_date";
    if ( $q == $query) {
        return false;
    }

    return $query; 
}
但在错误日志中,我看到了如下内容:对于get\\u default\\u post\\u to\\u edit进行的查询,WordPress数据库错误查询为空

任何想法如何删除查询的执行而不出现任何错误?德克萨斯州

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

我假设您在这里谈论的是这段维护代码:

http://core.trac.wordpress.org/browser/tags/3.3.1/wp-admin/includes/post.php#L419

实际上,该代码调用$wpdb, 没有太多的钩子,事实上只有一个,query.

http://core.trac.wordpress.org/browser/tags/3.3.1/wp-includes/wp-db.php#L1061

因此,为了返回一个空的结果集,您必须提出一个无操作类型的查询,下面是一些示例:

  • SELECT NULL; (返回1个空结果)
  • DO 0;
  • SET @ignore_me = 0;
  • SELECT * FROM `$wpdb->posts` WHERE 1=0;

结束

相关推荐

如何从WP_Query中删除帖子,以便分页正确?

我正在使用一个自定义的帖子类型,并在主页上每页显示20个。我正在使用QP\\U查询。自定义post类型的一个自定义字段(称为mixstapes)是一个名为“unreleased”(设置为true/false)的复选框,它基本上是一个我不想包含在循环中的post。到目前为止,我在while循环中放置了一个条件if,仅当“unreleased”未设置为“true”时才显示,但问题是它(显然)不适用于循环本身,因此。。。分页“看到”40篇文章(2页),而实际上只有1张未发布的相册(应该是1页,但显示了2页)。在