Intereting Posts

Объяснение перехватчиков фильтра posts_join и posts_fields?

Я новичок в фильтрах «posts_» и хотел узнать несколько вещей от тех, кто знает:

В этом вопросе кто-то отправил ответ, используя posts_join который взял второй параметр $query :

 add_filter('posts_join',array(&$this,'posts_join'),10,2); ... function posts_join($join,$query) { } 

Это экземпляр wp_query или что-то подобное?

Тот же пример:

Как определить тип сообщения, чтобы я мог выполнять пользовательские объединения для каждого настраиваемого типа сообщения, которое у меня есть на стороне администратора

Что делает posts_fields фильтра posts_fields ? из примера, который я видел, похоже, что он заменяет столбцы в предложении SELECT вызова SQL .

Правильно ли я в этом предположении, и у него тоже есть больше параметров, которые можно назвать?

Я нахожу несколько примеров, но я не могу получить какую-либо документальную документацию.

Solutions Collecting From Web of "Объяснение перехватчиков фильтра posts_join и posts_fields?"

Когда вы используете один из методов запроса сообщений ( query_posts() , get_posts() или объект WP_Query ), аргументы, которые вы предоставляете, обрабатываются и преобразуются в SQL-запрос. Это происходит в WP_Query->&get_posts() .

Поскольку аргументы не являются всемогущими, там много крючков, которые позволяют изменять или переопределять части результирующего SQL-запроса.

  • posts_join является частью запроса, который обрабатывает SQL JOINs – добавление в таблицу дополнительных таблиц, например таблиц, связанных с таксономиями, когда они необходимы.

  • posts_fields , что posts_fields контролирует, какие поля базы данных будут возвращены в запросе, по-видимому, по умолчанию все поля из таблицы posts .