Извлекать сообщения по запросу пользователя


13

Я хочу получить пользовательские сообщения, используя пользовательский запрос. моя таксономия - recipe_tx и термины (говядина), (курица) и т. д.

я пытался использовать

SELECT p.* FROM wp_posts p, wp_term_taxonomy tt, wp_term_relationships tr 
WHERE p.ID=tr.`object_id` 
AND tt.`term_id`=tr.`term_taxonomy_id` 
AND (p.post_type = 'recipe_cpt')
AND p.post_status = 'publish'
AND tt.`term_taxonomy_id` = 37

но не повезло.

Может кто-нибудь помочь мне, как получить сообщения WP по их term_id.

Если ID говядины 37, то я хочу получить все сообщения с term_id = 37

Благодарность


1
Вот кодекс, на который ссылается jdm2112: Отображение сообщений с помощью пользовательского запроса выбора . Он избил меня до этого ...
eyoung100

Ответы:


29

Вы пытались использовать класс WP_Query? Возможно, вы обнаружите, что для этого проще использовать встроенные инструменты, а не пользовательский запрос с нуля. Что-то похожее на следующее должно работать для вас:

<?php
$args = array(
'post_type' => 'recipe_cpt',
'tax_query' => array(
    array(
    'taxonomy' => 'recipe_tx',
    'field' => 'term_id',
    'terms' => 37
     )
  )
);
$query = new WP_Query( $args ); ?>

РЕДАКТИРОВАТЬ: обратите внимание, что tax_queryэто массив массивов по дизайну. Многие проблемы налоговых запросов являются результатом отсутствия этой детали.

РЕДАКТИРОВАТЬ: исправлено fieldопечатка значения выше, заменив 'id' на 'term_id'.


Как я могу найти сообщения с LIKE оговоркой в ​​этом случае?
Азим Хасни

1
Обратите внимание , что возможные значения fieldявляются term_id, name, slugили term_taxonomy_id. См. Codex.wordpress.org/Class_Reference/…
Marian
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.