Объяснение крючков фильтров "объединение записей" и "поля записей"?


Я новичок в крючках фильтра "posts_" и хотел бы узнать несколько вещей от тех, кто в курсе:

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

add_filter('posts_join',array(&$this,'posts_join'),10,2);

...

function posts_join($join,$query) {

}

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

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

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

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

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

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

Author: Community, 2010-12-31

1 answers

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

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

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

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

 9
Author: Rarst, 2010-12-31 18:02:31