如何从当前查询的对象中获取所有ID的数组?

时间:2014-05-21 作者:itrogers

我正在尝试将一组post ID连接在一起。现在,我的代码似乎是为每个ID创建一个单独的数组,而不是为每个ID创建一个数组。

这是我想出的代码。它位于包含的内部taxonomy.php 文件

因此,基本上,我正在尝试获取每个帖子的ID,该ID将来自对给定分类术语的查询。

我觉得我错过了一些很明显的东西?我已经尝试将变量置于循环之外,但它只会输出第一个post ID。

<?php 

        if( function_exists( \'wpseo_local_show_map\' ) ) {

        while (have_posts()) : the_post();

            $post_ids = get_the_ID();

            var_dump($post_ids);

        endwhile;

                    $params = array(
                    \'id\' => $post_ids,
                    \'echo\' => true,
                    \'width\' => 425,
                    \'height\' => 350,
                    \'zoom\' => 10,
                    \'show_route\' => true
                    );
                     wpseo_local_show_map( $params );
                }

?>
var\\u转储looks like this. 有人能给我指出正确的方向吗?

1 个回复
最合适的回答,由SO网友:gmazzap 整理而成

您正在覆盖$post_ids 每个上的变量while 循环,从不收集它们。

可以使用

$post_ids = array();

while (have_posts()) : the_post();

  $post_ids[] = get_the_ID();

endwhile;

var_dump($post_ids); // this is an array of ids
然而,有一种更简单的方法,您可以跳过whle循环,只需运行:

if( function_exists( \'wpseo_local_show_map\' ) && have_posts() ) {

  // this is an array of ids
  $post_ids = wp_list_pluck( $GLOBALS[\'wp_query\']->posts, \'ID\' ); 

  $params = array(
    \'id\' => $post_ids,
    \'echo\' => true,
    \'width\' => 425,
    \'height\' => 350,
    \'zoom\' => 10,
    \'show_route\' => true
  );
  wpseo_local_show_map( $params );
}

结束

相关推荐

通过Term_id将外部数据映射到标签

我正在考虑将一个定制的CMS,包含大约40k个帖子和大约100k个标签,迁移到WP中。该网站涵盖了有关音乐会行业的新闻,并将使用标签作为与每篇帖子相关的艺人名称。将有外部API为每个艺术家引入专有图像和巡演日期,并且他们需要映射到标签的term\\u id,该标签将是艺术家名称。在内部,查找表需要映射到term\\u id以生成API挂钩和商业链接。问题是,WP中的分类法(将一个标记映射到相关内容挂钩的几列)是实现这一点的最佳方式,还是应该成为一个从一开始就在WP表结构之外工作的外部标记映射插件。