Запрос сообщений Wordpress с использованием Wp-сообщений и Wp-терминов - PullRequest
0 голосов
/ 30 апреля 2020

enter image description here Я пытаюсь запросить все сообщения с моего сайта Wordpress, которые имеют wp_terms.slug = 'портфолио-фотографии'. Я соединил таблицы, используя wp_terms, wp_term_taxonomy, wp_term_relationships и wp_posts. Я не уверен, что не так с кодом SQL, который у меня есть. Может кто-нибудь посоветовать, что не так с моим кодом / ходом мыслей по этому поводу?

Я получаю 0 строк, однако должно быть 12 строк, потому что это столько, сколько у меня в WP с слагом «портфолио-фотографии». Заголовки столбцов: ID, term_id и slug.

SELECT wp_posts.ID, wp_terms.term_id, wp_terms.slug
FROM wp_posts
LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
LEFT JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)
LEFT JOIN wp_terms ON (wp_term_taxonomy.term_taxonomy_id = wp_terms.term_id)
WHERE wp_terms.slug = 'portfolio-photos'

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

Я понял, что у меня был правильный код после тщательного изучения того, как соотносятся таблицы в БД WP. Эта статья действительно помогла. Я пытался получить результаты, используя слаг, который соответствовал родительской категории.

Поэтому мой исходный код выше работал только для подкатегорий. Приведенный ниже код возвращает правильное количество результатов, используя WHERE wp_term_taxonomy.parent = '11'

SELECT wp_posts.ID, wp_terms.term_id, wp_term_taxonomy.parent, wp_terms.slug
FROM wp_posts
LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
LEFT JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)
LEFT JOIN wp_terms ON (wp_term_taxonomy.term_taxonomy_id = wp_terms.term_id)
WHERE wp_term_taxonomy.parent = '11'
0 голосов
/ 30 апреля 2020

Таблица wp_terms нигде не указана в предложении FROM, вам нужно связать ее, чтобы использовать в предложении WHERE.

РЕДАКТИРОВАТЬ: исходное сообщение было изменено после моего исходного ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...