Изменение глобального почтового запроса (WordPress) - PullRequest
1 голос
/ 10 ноября 2011

Мне было интересно, если есть способ изменить глобальный запрос WordPress сообщений.

Допустим, я в архиве тегов. Мне нужно иметь возможность изменять порядок и значения posts_per_page

когда я использую это:

global $wp_query;
$wp_query->set('order', 'ASC');

Изменяет переменную, но порядок сообщений не изменяется.

Создание другого запроса сделает эту работу, но для этого потребуется, чтобы я использовал разные запросы для тегов, архивов, результатов поиска и т. Д., Что для меня не вариант.

Надеюсь, вы понимаете, что мне нужно.

Есть идеи, как это решить?

Спасибо!

Ответы [ 2 ]

1 голос
/ 23 января 2015

Я изменяю запрос WordPress из functions.php:

add_action('pre_get_posts','myf88');function myf88($query) {
    if ( !is_admin() && $query->is_main_query() )   {
        if (  $query->is_category ) {
            $query->set('post_type', array('post','page','my_postType') );
            add_filter( 'posts_where' , 'MyFilterFunction_1' ); 
        }
        //for "PAGE" type, this doesnt work (IT is WORDPRESS FAULT) , so you may modify "query_posts" in page.php,before loop
    }
}
function MyFilterFunction_1($where) {global $wpdb;  $where .= " AND ({$wpdb->posts}.post_name NOT LIKE 'Journal%')"; return $where;  }
1 голос
/ 10 ноября 2011

если вы используете query_posts () и передаете свои аргументы, это изменит цикл. http://codex.wordpress.org/Function_Reference/query_posts

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...