Объяснение крючков фильтров "объединение записей" и "поля записей"?
Я новичок в крючках фильтра "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
.
Прав ли я в этом предположении, и есть ли у него также больше параметров, которые можно вызвать??
Я нахожу несколько примеров, но нигде не могу получить никакой надежной документации.
1 answers
При использовании одного из методов для запроса сообщений (query_posts()
, get_posts()
или WP_Query
объект) аргументы, которые вы предоставляете, обрабатываются и превращаются в SQL-запрос. Это происходит в методе WP_Query->&get_posts()
.
Поскольку аргументы не являются всемогущими, существует множество крючков, которые позволяют изменять или переопределять части результирующего SQL-запроса.
posts_join
является частью запроса, который обрабатывает соединения SQL - добавление дополнительных таблиц в набор, например таблиц, связанных с таксономиями, когда они необходимый.posts_fields
похоже, чтобы контролировать, какие поля базы данных будут возвращены в запросе, по умолчанию используются все поля из таблицыposts
.