在Wordpress 2.8中查询多个自定义分类术语?

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


Ada*_*dam 6

这是一个有点延迟的回复,但它现在是第一次在谷歌"多个术语的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的第一次贡献,我希望它符合标准.