Мне нужен RAW SQL, так как я работаю с другой платформы с базой данных WordPress.
Когда я запускаю example.com/tag/first+second
, WordPress выполняет запросSELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (10649,7783,6336,4556,3938)
Откуда это взяло идентификаторы сообщений? Я только предполагаю. У меня есть определенные мысли по этому поводу, но сначала хочу узнать, знает ли кто-нибудь.
Вот запрос, который я построил при получении сообщений по тегу SINGLE:
SELECT `wp_posts`.`ID`, `wp_posts`.`post_name`, `wp_posts`.`post_title`, `wp_posts`.`post_date`, `wp_posts`.`post_content` , DATEDIFF(CURDATE(),post_date) as days_ago
FROM `wp_posts`
INNER JOIN wp_term_relationships
ON (wp_posts.ID = wp_term_relationships.object_id)
INNER JOIN wp_term_taxonomy
ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)
INNER JOIN wp_terms
ON (wp_term_taxonomy.term_id = wp_terms.term_id)
WHERE 1=1
AND wp_term_taxonomy.taxonomy = 'post_tag'
AND wp_terms.slug SOUNDS LIKE 'Hennessy'
AND wp_terms.slug SOUNDS LIKE 'VS'
AND wp_posts.post_type = 'post'
AND (wp_posts.post_status = 'publish')
GROUP BY wp_posts.ID
ORDER BY wp_posts.post_date DESC
Благодарю.
«Другая платформа»; вы работаете с базой данных WordPress?
@Mike Да, я бы сказал, база данных MYSQL. Поскольку я не использую классы абстракции базы данных WordPress
Но вы используете схему базы данных WordPress, верно?
@Mike Да, вы правы, схема Wp db
Да, вы правы, у меня немного другой запрос, но даже из того, который вы указали, я не могу использовать его для множественного выбора «тегов».
@simple возвращает ли URL
example.com/tag/first+second
то, что вы хотите? Просто подключитесьposts_request
и создайте дамп запроса, как это сделал я. Нужна помощь с этим?@Rast извлекает, но выполняет запрос, похожий на
"SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (10649,7783,6336,4556,3938)"
, но мне нужно получить эти post_id! Я также сравниваю их с Soundex, так что случай становится немного забавнее! Любая мысль о том, как сбросить все запросы, которые WordPress выполняет за один запрос?@simple Этот запрос даже не является запросом для сообщений, это запрос для настраиваемых полей. Я не уверен, какое это имеет отношение к чему-либо, как указано выше — попробуйте сбросить
posts_request
фильтр, если вам нужен запрос, который выполняется для получения сообщений.Вы, кажется, ловите неправильный запрос. Сброс SQL для такого URL (через
posts_request
фильтр) дает мне это:В любом случае см.
WP_Query->get_posts()
метод, который обрабатывает преобразование переменных запроса в SQL. Там много кода, и многие из них были изменены в 3.1, поэтому мне немного сложно определить, где обрабатываются несколько тегов.