получать сообщения() и фильтры


Я добавил пользовательскую функцию фильтра для the_posts фильтра в плагин.

add_filter('the_posts', 'posts_filter');
function posts_filter() { … }

Это довольно хорошо работает в основном цикле, это означает, что сообщения фильтруются так, как я определил в функции posts_filter.

Но я звоню get_posts() в рамках запроса ajax, чтобы получить несколько сообщений. И там фильтры не работают. query_posts() или пользовательские wp_query тоже не работают.

Итак, вопрос в следующем: как я могу получать сообщения рядом с основным циклом, которые фильтруются фильтром the_posts?

 1
Author: Status4, 2013-03-13

1 answers

the_posts работает для всех запросов, включая основной запрос, а также пользовательские запросы, но не работает при использовании get_posts(). Это происходит потому, что get_posts() автоматически подавляет все фильтры. Если вы хотите использовать фильтры даже при использовании get_posts, вы можете передать дополнительный ключ 'suppress_filters' => false в массив, который вы передаете в качестве аргумента get_posts()

 1
Author: Mridul Aggarwal, 2013-03-13 18:31:55