Push metadata in array

时间:2016-01-19 作者:Dorvalla

Applying meta keys in search result

由于我需要采用不同的方法从wordpress获取javascript中的数据,我正在尝试应用(作为今天早些时候帖子的后续内容(https://stackoverflow.com/questions/34873986/javascript-for-each-custom-post-type-wordpress)) 将元数据添加到我的查询中,以便它能够输出正确的信息。这实际上比我想象的要难,因为我更希望它出现在一个查询中。我在谷歌上搜索了很长一段时间,因为我希望我不是唯一一个有这个问题的人。我似乎找不到与我的问题相关的答案

Case

因为有人告诉我javascript和php不好用,所以我开始探索一种不同的方法。它要求我在通过json_encode. 到目前为止,除了一件小事,一切都很顺利。在WP\\u查询中询问时,我无法获得任何元数据,这是我真正需要的部分,因为其中包含我的谷歌地图的地图信息。那么,在我完成这项工作之前,有没有办法对此提出质疑?

<?php
$args = array(
        \'post_type\' => \'hotels\',
 );

$query = new WP_Query( $args );
echo \'<pre>\';
print_r($query->posts);
echo \'</pre>\'
?>

<script type="text/javascript">
var post_info = <?php echo json_encode($query->posts); ?>;
<script>
到目前为止,我设法检查得到了什么,但我想,我无法通过wp\\u查询得到这个。有没有其他方法可以真正获得我需要的数据?或者,有没有一种方法可以在每一篇文章中推送数组中的元数据,这样我就可以用Javascript访问它?

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

您需要循环浏览您的帖子,并检索每个帖子的元数据。将它们添加到数组中,并将其编码为JSON。

$posts = $query->get_posts();
foreach( $posts as &$thispost ) { // reference the current item

    $thispost->meta = get_post_meta( $thispost->ID );

}
现在你有了WP_Post-对象,并在$post->meta[\'meta_key\'][0]. 如果为一个元键保存了多个值,则可以通过[\'meta_key\']-大堆