Chr*_*oth 4 php wordpress taxonomy
我创建了一个名为"技术"的自定义分类,但不能像类别或标签一样查询多个术语.
这些查询可以工作:
query_posts('tag=goldfish,airplanes');
query_posts('technologies=php');
Run Code Online (Sandbox Code Playgroud)
但是,以下两种方法均无法正常工作:
query_posts('technologies=php,sql');
query_posts('technologies=php&technologies=sql');
Run Code Online (Sandbox Code Playgroud)
我的目标:使用'php'技术显示所有帖子,并使用'sql'技术显示所有帖子
有任何想法吗?这甚至可能吗?谢谢!
Chr*_*oth 10
显然query_posts在这种特定情况下无法帮助.(希望它将在Wordpress的未来版本中添加!)解决方案是使用如下自定义选择查询:
SELECT *
FROM $wpdb->posts
LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy ON($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
LEFT JOIN $wpdb->terms ON($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id)
WHERE $wpdb->posts.post_type = 'post'
AND $wpdb->posts.post_status = 'publish'
AND $wpdb->term_taxonomy.taxonomy = 'technologies'
AND $wpdb->terms.slug = 'php' OR $wpdb->terms.slug = 'css'
ORDER BY $wpdb->posts.post_date DESC
Run Code Online (Sandbox Code Playgroud)
更多信息可以在Wordpress Codex中找到:http: //codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query
这是一个有点延迟的回复,但它现在是第一次在谷歌"多个术语的Wordpress相关帖子",所以我想我会贡献我的发现.
由于此问题已发布,Wordpress已更改为允许此类查询.这将为您提供与分配给对象的任何自定义分类术语相关的帖子列表:
$post_cats = wp_get_object_terms(get_the_ID(), 'video_category', array('fields' => 'ids'));
$args=array(
"tax_query" => array(
array(
"taxonomy" => "video_category",
"field" => "id",
"terms" => $post_cats
)
),
'post__not_in' => array(get_the_ID()),
'post_type' => 'video',
'posts_per_page' => 8,
'caller_get_posts' => 1
);
$related_by_cats = new WP_Query($args);
Run Code Online (Sandbox Code Playgroud)
这是我对SO的第一次贡献,我希望它符合标准.
| 归档时间: |
|
| 查看次数: |
17291 次 |
| 最近记录: |