我正在尝试为wordpress编写一个自定义的select post查询。我正在使用wooccommerce。在wooccommerce中,默认的帖子类型名称为"product",分类名称为"product_cat"我为产品规范添加了另一个分类法名称"spec"。
所以在我的产品类别中,假设"三星","笔记本电脑"是产品类别的一个术语名称。在"规格"中,我有一些规格,比如"酷睿i5处理器"、"8gb ddr3内存"等,我的帖子标题是"超级笔记本"
我想搜索这个字段中的任何一个,就像如果在我的搜索字段中键入笔记本,它将显示所有笔记本一样。在搜索输入类型文本区域下面,我还有一个选择框,里面有所有的"product_cat",比如三星、惠普、苹果、笔记本电脑等。
产品标题/文章标题
- 超级笔记本
product_cat
- 三星
- 笔记本电脑
规格
- 酷睿i5处理器
-
8gb 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);
我不知道该怎么办。所以,任何想帮助我的人请帮我回答这个问题。谢谢
你可以试试这个
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);