Исключить из сообщений запроса с meta_key и meta_value

Я использую эту функцию для исключения из сообщений о запросах, которые составляют 30 дней,

function filter_where($where = '') { //posts in the last 30 days $where .= " AND post_date > '" . date('Ym-d', strtotime('-30 days')) . "'"; return $where; } // Register the filtering function add_filter('posts_where', 'filter_where'); // Perform the query, the filter will be applied automatically query_posts($query_string); 

возможно ли сделать что-то подобное, чтобы исключить сообщения, которые имеют meta_key = vote и meta_value = 0?

Я думаю, вам нужно будет добавить фильтр posts_join, чтобы присоединиться к сообщениям и записям postmeta.

Эта ссылка должна быть полезной: http://codex.wordpress.org/Custom_Queries , в частности, этот пример кода примера:

 add_filter('posts_join', 'geotag_search_join' ); add_filter('posts_where', 'geotag_search_where' ); function geotag_search_join( $join ) { global $geotag_table, $wpdb; if( is_search() ) { $join .= " LEFT JOIN $geotag_table ON " . $wpdb->posts . ".ID = " . $geotag_table . ".geotag_post_id "; } return $join; } function geotag_search_where( $where ) { if( is_search() ) { $where = preg_replace( "/\(\s*post_title\s+LIKE\s*(\'[^\']+\')\s*\)/", "(post_title LIKE $1) OR (geotag_city LIKE $1) OR (geotag_state LIKE $1) OR (geotag_country LIKE $1)", $where ); } return $where; } , add_filter('posts_join', 'geotag_search_join' ); add_filter('posts_where', 'geotag_search_where' ); function geotag_search_join( $join ) { global $geotag_table, $wpdb; if( is_search() ) { $join .= " LEFT JOIN $geotag_table ON " . $wpdb->posts . ".ID = " . $geotag_table . ".geotag_post_id "; } return $join; } function geotag_search_where( $where ) { if( is_search() ) { $where = preg_replace( "/\(\s*post_title\s+LIKE\s*(\'[^\']+\')\s*\)/", "(post_title LIKE $1) OR (geotag_city LIKE $1) OR (geotag_state LIKE $1) OR (geotag_country LIKE $1)", $where ); } return $where; } 

Или, в WP3.1:

 $query['meta_query'] = array( 'key' => 'votes', 'value' => '0', 'compare' => '!=' ),