Настраиваемый запрос wpdb для выбранной публикации более чем одной таксономии

Я пытаюсь написать пользовательский выбор пост-запроса для WordPress. Я использую WooCommerce. В woocommerce именем типа записи по умолчанию является «product» и название таксономии в «product_cat». Я добавил еще одно название таксономии «spec» для спецификации продукта.

Поэтому в моей товарной категории предположим, что «samsung», «ноутбук» — это название для товарной категории. и в «спецификации» у меня есть некоторые спецификации, такие как «процессор Core i5», «8 ГБ DDR3 RAM» и т. д., и мой пост заголовок «супер ноутбук»

Я хочу найти его по любому из этих полей, например, если в моем поле поиска ввести блокнот, он покажет все блокноты. Под текстовой областью типа ввода для поиска у меня также есть поле выбора, в котором есть все «product_cat», такие как Samsung, HP, Apple, ноутбук и т. Д.

Название продукта / Заголовок сообщения

  • Супер ноутбук

product_cat

  • Samsung
  • портативный компьютер

спекуляция

  • процессор Core i5
  • 8 ГБ оперативной памяти DDR3

    глобальный $ wpdb;

    $query = "SELECT DISTINCT wp_posts.*
    FROM wp_posts, wp_term_relationships, wp_term_taxonomy, wp_terms
    WHERE (wp_terms.name LIKE '%ddr3 ram%'
    OR wp_posts.post_title LIKE '%ddr3 ram%')
    AND wp_posts.post_status = 'publish'
    AND wp_posts.post_type = 'product'
    AND wp_posts.ID = wp_term_relationships.object_id
    AND wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
    AND wp_term_taxonomy.term_id = wp_terms.term_id  GROUP BY  wp_posts.ID ORDER BY wp_posts.post_title ASC";
    
    $object = $wpdb->get_results($query);
    
    _log($object);
    

Я пытаюсь этот код показать результат.

Но если я попробую это, это не покажет результат

global $wpdb;

$query = "SELECT DISTINCT wp_posts.*
FROM wp_posts, wp_term_relationships, wp_term_taxonomy, wp_terms
WHERE (wp_terms.name LIKE '%ddr3 ram%'
AND wp_terms.name LIKE '%samsung%'
OR wp_posts.post_title LIKE '%ddr3 ram%')
AND wp_posts.post_status = 'publish'
AND wp_posts.post_type = 'product'
AND wp_posts.ID = wp_term_relationships.object_id
AND wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
AND wp_term_taxonomy.term_id = wp_terms.term_id  GROUP BY  wp_posts.ID ORDER BY wp_posts.post_title ASC";

$object = $wpdb->get_results($query);

_log($object);

Я понятия не имею, чтобы это исправить. Так что кто-нибудь хочет помочь мне, пожалуйста, дайте мне этот ответ.
Благодарю.

1

Решение

Привет Фейсал Бхай, ты должен попробовать это

global $wpdb;

$query = "SELECT DISTINCT wp_posts.*
FROM wp_posts, wp_term_relationships, wp_term_taxonomy, wp_terms
WHERE (wp_terms.name LIKE '%ddr3 ram%'
OR wp_terms.name LIKE '%samsung%'
OR wp_posts.post_title LIKE '%ddr3 ram%')
AND wp_posts.post_status = 'publish'
AND wp_posts.post_type = 'product'
AND wp_posts.ID = wp_term_relationships.object_id
AND wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
AND wp_term_taxonomy.term_id = wp_terms.term_id  GROUP BY  wp_posts.ID ORDER BY wp_posts.post_title ASC";

$object = $wpdb->get_results($query);

_log($object);

Я надеюсь, что вы найдете свое решение

0

Другие решения

Других решений пока нет …