Как выбрать сообщения с определенными тегами/категориями в WordPress

Я сталкиваюсь с той же проблемой с библиотекой API Reactive Location API для Android и RxJava 2 . Простое обновление build.gradle до 3.0.1 и сокращение библиотеки API-интерфейсов Reactive Location для Android и RxJava 2 версия библиотеки от 1.0.4 до 1.0.3. В моем случае она отлично работает.

7
задан Ijas Ameenudeen 18 January 2019 в 11:16
поделиться

6 ответов

Я неправильно понял Вас. Я думал, что Вы хотели Ядерный или Соглашения. Ниже должен дать Вам только Ядерный и Соглашения.

select p.*
from wp_posts p, wp_terms t, wp_term_taxonomy tt, wp_term_relationship tr,
wp_terms t2, wp_term_taxonomy tt2, wp_term_relationship tr2
wp_terms t2, wp_term_taxonomy tt2, wp_term_relationship tr2

where p.id = tr.object_id and t.term_id = tt.term_id and tr.term_taxonomy_id = tt.term_taxonomy_id

and p.id = tr2.object_id and t2.term_id = tt2.term_id and tr2.term_taxonomy_id = tt2.term_taxonomy_id

and p.id = tr3.object_id and t3.term_id = tt3.term_id and tr3.term_taxonomy_id = tt3.term_taxonomy_id

and (tt.taxonomy = 'category' and tt.term_id = t.term_id and t.name = 'Category1')
and (tt2.taxonomy = 'post_tag' and tt2.term_id = t2.term_id and t2.name = 'Nuclear')
and (tt3.taxonomy = 'post_tag' and tt3.term_id = t3.term_id and t3.name = 'Deals')
4
ответ дан 7 December 2019 в 03:23
поделиться

Попробуйте это:

select p.*
from wp_posts p, 
wp_terms t, wp_term_taxonomy tt, wp_term_relationship tr
wp_terms t2, wp_term_taxonomy tt2, wp_term_relationship tr2

where p.id = tr.object_id
and t.term_id = tt.term_id
and tr.term_taxonomy_id = tt.term_taxonomy_id

and p.id = tr2.object_id
and t2.term_id = tt2.term_id
and tr2.term_taxonomy_id = tt2.term_taxonomy_id

and (tt.taxonomy = 'category' and tt.term_id = t.term_id and t.name = 'Category1')
and (tt2.taxonomy = 'post_tag' and tt2.term_id = t2.term_id and t2.name in ('Nuclear', 'Deals'))

По существу я использую 2 копии подходящих дочерних таблиц - условия, term_taxonomy, и term_relationship. Одна копия вводит ограничение 'Category1', другой 'Ядерное' ограничение или ограничение 'Соглашений'.

BTW, какой проект - это с сообщениями все о ядерных соглашениях? Вы пытающийся получить нас в некотором правительственном списке?;)

2
ответ дан 7 December 2019 в 03:23
поделиться

Какая грубая структура DB.

Так или иначе я сделал бы что-то вроде этого (обратите внимание, что я предпочитаю, СУЩЕСТВУЕТ к соединениям, но можно переписать их как соединения, если Вам нравится; большая часть запроса анализаторы свернет их к тому же плану запросов так или иначе). Вам, вероятно, придется сделать некоторое дополнительное манипулирование так или иначе, чтобы заставить его работать...

SELECT *
  FROM wp_posts p
 WHERE EXISTS( SELECT *
                 FROM wp_term_relationship tr
                WHERE tr.object_id = p.id
                  AND EXISTS( SELECT *
                                FROM wp_term_taxonomy tt
                               WHERE tt.term_taxonomy_id = tr.term_taxonomy_id
                                 AND tt.taxonomy         = 'category'
                                 AND EXISTS( SELECT *
                                               FROM wp_terms t
                                              WHERE t.term_id = tt.term_id
                                                AND t.name    = "Category1" 
                                           )
                            )
                  AND EXISTS( SELECT *
                                FROM wp_term_taxonomy tt
                               WHERE tt.term_taxonomy_id = tr.term_taxonomy_id
                                 AND tt.taxonomy         = 'post_tag'
                                 AND EXISTS( SELECT *
                                               FROM wp_terms t
                                              WHERE t.term_id = tt.term_id
                                                AND t.name    = "Nuclear" 
                                           )
                                 AND EXISTS( SELECT *
                                               FROM wp_terms t
                                              WHERE t.term_id = tt.term_id
                                                AND t.name    = "Deals" 
                                           )
                            )
            )
2
ответ дан 7 December 2019 в 03:23
поделиться

Таким образом, я попробовал обе опции на своем дб WordPress. Я искал категорию "Tech" в своих сообщениях с тегами "Perl" И "Программирование".

Eric работал, после того как я добавил недостающую запятую в начальном избранном операторе. Это возвратило 3 записи. Проблема состоит в том, что раздел, который ищет "post_tag", на самом деле работает ИЛИ опция. Одно из моих сообщений только имело один тег не оба. Также было бы хорошо сделать ВЫБОР ОТЛИЧНЫМ.

Я попробовал версию Matt, но это продолжало возвращать пустое множество. Я могу попытаться "манипулировать" им.

1
ответ дан 7 December 2019 в 03:23
поделиться

Действительно так большой ответ.. помогший меня много..

большой bcoz., это дало мне основной подход для создания моего сложного запроса!

одно маленькое исправление, для готовых пользователей как я :)

"wp_term_relationship" даст, 'не существует ошибка'.. используйте wp_term_relationships, поскольку это - корректное имя таблицы.

Спасибо Eric

0
ответ дан 7 December 2019 в 03:23
поделиться

Спасибо @Eric это работает! Всего несколько исправлений кода для дальнейшего использования:

  • первые избранные операторы пропускают кому после wp_term_relationship tr2
  • В том же выборе statemt следующее должно быть изменение:
wp_terms t2, wp_term_taxonomy tt2, wp_term_relationship 

tr2

должен быть

wp_terms t3, wp_term_taxonomy tt3, wp_term_relationship 

tr3
0
ответ дан 7 December 2019 в 03:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: