统计与另一个帖子类型相关联的帖子类型的数量

时间:2017-06-08 作者:viblic

我在Wordpress中有两种自定义帖子类型:目的地和旅游(比如巴黎和巴黎一日游)。他们有一种多对多的关系。现在,我需要计算与各个目的地相关的旅游数量,如巴黎(2)、罗马(5)等。

我试着用这个

wp_count_posts(\'tour\');
但这是所有目的地的旅游总次数。因此,问题是,我如何才能只获得与各个目的地相关的旅游数量?

谢谢

1 个回复
SO网友:WebElaine

听起来您需要使用WP\\u Query或类似的工具。

<?php
// First query: get all destinations
$args = array(
    \'post_type\' => \'destination\',
    \'posts_per_page\' => -1,
    \'no_found_rows\' => \'true\' // skips pagination
);
$destinations = new WP_Query($args);
// Now for every destination:
foreach($destinations as $destination) {
    // Second query to get tours
    $secondargs = array(
        \'post_type\' => \'tour\',
        \'posts_per_page\' => -1,
        \'no_found_rows\' => \'true\', // skip pagination
        \'meta_query\' => array(
            array(\'key\' => \'yourmetakey\',
                \'value\' => "$destination", // only get tours with current destination
                \'compare\' => \'=\',
            ),
        ),
    );
    $tours = new WP_Query($secondargs);
    // output the name of the destination plus the number of tours
    echo $destination->title . \'(\' . count($tours) . \')\';
}
?>
第一个查询获取所有目的地。第二个查询需要进行调整-无论您如何将目的地与旅游相关联,都可以使用Posteta或分类法仅获取每个目的地的旅游。最后,您可能需要自定义html输出-可能是<ul> 或者类似的东西,可能链接到目的地。

结束

相关推荐

Get posts by birthday

我正在开发一个博客网站,它是一个传记目录,我如何才能获得特定出生日期的帖子,以及如何获取今天出生日期的帖子。例如:在5月17日,may想要为5月17日出生的人展示传记帖子。并于5月18日为5月18日出生的人张贴传记。我附上了一张图片,还链接了一个具有类似功能的网站,我想知道如何做到这一点。 http://frostsnow.com/