2013-08-29 2 views
3

Я хочу, чтобы добавить фильтр, чтобы выбрать необходимые сообщения, как:Добавить условия существовали WP_Query в Wordpress

function exclude_post($query) { 
    if ($query->is_home) { 

     // Do some PHP code 

    }  
    return $query; 
} 

add_filter('pre_get_posts', 'exclude_post'); 

Как я могу добавить новые условия существовали WP_Query экземпляр $query?

+0

$ query = new WP_Query ($ args); $ args is condition array i guess – codepixlabs

ответ

0
$args = array(
    'post_type' => 'post', 
    'tax_query' => array(
     array(
      'taxonomy' => 'people', 
      'field' => 'slug', 
      'terms' => 'bob' 
     ) 
    ) 
); 
$query = new WP_Query($args); 

отрывок из Codex увидеть здесь wp query

+0

Но когда я создаю новый экземпляр WP_Query, я потеряю исходный '$ query' и создаю новый. Но я хочу добавить некоторые условия к существованию. –

2

Если вы хотите изменить свой запрос с помощью фильтра, вы можете использовать $query->set('post_type', 'post'); в функции, просто addapt с параметром.

Если вы хотите изменить основной цикл, вы можете использовать это:

global $wp_query; 
$args = array_merge($wp_query->query_vars, array('post_type' => 'product')); 
query_posts($args); 
0

Вы хотите создать собственный список сообщений, но вы не хотите потерять текущую wp_query? Легко, используйте wp_reset_query()!

$my_query = new WP_Query($argument_array); 
//... Do all you have to do with the query ... 
wp_reset_query(); // This will restore the original query.