2016-12-07 4 views
1

У меня возникли проблемы с фильтрацией сообщений (продуктов) по товарной категории. Пробовал несколько способов, я новичок.Wordpress Filter post by product_cat

На моем шаблоне архивно-продукта Я пришел, чтобы выполнить отчет (через SQLREPORTS плагин) с этим запросом:

SELECT `post_title` AS Alumno, `comment_author` AS 'Profesor', `comment_date` AS 'Fecha', `comment_content` AS 'Nota' 
FROM `xi00_3_comments` 
INNER JOIN `xi00_3_posts` ON `comment_post_ID`=`ID` 
WHERE `comment_author` != 'WooCommerce' 
AND DATE(comment_date) BETWEEN DATE_ADD(DATE_ADD(NOW(),INTERVAL -1 MONTH), INTERVAL 0 DAY) AND DATE(NOW()) 
AND comment_approved = '1' 
ORDER BY `xi00_3_comments`.`comment_date` DESC 

Он работает просто отлично, и я получаю все комментарии от всех сообщений. (моя страница фильтруется по категориям продуктов).

мне удалось получить значение для текущей категории: (скажем, значение «3b»)

[query_vars] => Array 
    (
     [product_cat] => 3b 

$category = get_query_var('product_cat','msg if not set'); 

Можете ли вы помочь в том, как я должен структурировать запрос включать таксономии и предельные сообщения для тех, кто данная категория продуктов? я "м курсе я должен включать в области систематики и термины, но не могу понять его

Спасибо большое

ответ

1

Вам нужно сделать 2 изменения:..

  1. Inner Регистрация сообщений Таблица (xi00_3_posts) для комментариев таблицы (xi00_3_comments).
  2. Inner Регистрация сообщений таблицы (xi00_3_posts) для отношения таблицы (xi00_3_term_relationships), для выбора категории.

Примечание Я использовал 10 как term_taxonomy_id в примере ниже:

SELECT `post_title` AS Alumno, `comment_author` AS 'Profesor', `comment_date` AS 'Fecha', `comment_content` AS 'Nota' FROM `xi00_3_posts` INNER JOIN `xi00_3_comments` ON `ID`=`comment_post_ID` INNER JOIN `xi00_3_term_relationships` ON (`ID` = `object_id`) WHERE `comment_author` != 'WooCommerce' AND (`term_taxonomy_id` IN (10)) AND DATE(comment_date) BETWEEN DATE_ADD(DATE_ADD(NOW(),INTERVAL -1 MONTH), INTERVAL 0 DAY) AND DATE(NOW()) AND comment_approved = '1' ORDER BY `xi00_3_comments`.`comment_date` DESC 
+0

Он работал как шарм !. Большое спасибо. –

+0

Он работал как шарм !. Огромное спасибо. ... может быть, вне темы: я использую $ category = get_query_var ('product_cat') для получения пули; Какую функцию я должен использовать для получения term_taxonomy_id? [queried_object] => WP_Term Object ( [term_id] => 6 [term_taxonomy_id] => 6 –

+0

$ terms = wp_get_post_terms ($ post_id, $ taxonomy, $ args). Он вернет массив, содержащий все сведения о таксономия для этой должности. –