在wordpress中获取带有数组的帖子的id

时间:2014-02-19 13:02:50

标签: wordpress

我有一个带有term_id的数组。

$termID = array(165,166,158,157);

我想要获得这些数组中所有元素的帖子ID。(使用term_id 165,166,158,157获取所有类别中的所有帖子)。 我的类别名称是newcat。

我写道:

SELECT r.object_id
FROM wp_term_relationships r 
LEFT JOIN wp_term_taxonomy t ON r.term_taxonomy_id = t.term_taxonomy_id
WHERE t.term_id IN (165,166,158,157)
GROUP BY r.object_id

但我得到object_id,他们有一个或多个这个数组的元素。

2 个答案:

答案 0 :(得分:0)

我猜您正在寻找一种方法来查询您的数据库?如果是这样的话:

SELECT * FROM categories WHERE newcat IN(165,166,158,157)

我在WP中并不是很有经验,但你会抓住这一点。

答案 1 :(得分:0)

您可以使用get_posts而不是手动sql查询:

$post_ids = get_posts(array(
    'numberposts'   => -1, // get all posts.
    'tax_query'     => array(
        array(
            'taxonomy'  => 'category',
            'field'     => 'id',
            'terms'     => array(165,166,158,157),
        ),
    ),
    'fields'        => 'ids', // Only get post IDs
));

尚未尝试过,但试一试:

$post_ids = get_posts(array(
        'numberposts'   => -1, // get all posts.
        'relation'  =>    'AND'
        'tax_query'     => array(
            array(
                'taxonomy'  => 'category',
                'field'     => 'id',
                'terms'     => array(165),
            ),
             array(
                'taxonomy'  => 'category',
                'field'     => 'id',
                'terms'     => array(166),
            ),
             array(
                'taxonomy'  => 'category',
                'field'     => 'id',
                'terms'     => array(158),
            ),
             array(
                'taxonomy'  => 'category',
                'field'     => 'id',
                'terms'     => array(157),
            ),
        ),
        'fields'        => 'ids', // Only get post IDs
    ));

http://codex.wordpress.org/Template_Tags/get_posts

干杯!