2014-04-03 49 views
-1

我正在使用插件对我的产品进行分组,然后使用JSON stringify获取产品ID并在自定义字段中返回以下内容:[{“id”:“435”},{“id”:“527 “},{” ID “:” 563 “},{” ID “:” 568" }]。如何将JSON字符串返回为可用数据?

我想使用它,但不知道如何。我根本不了解Java。我正在使用Wordpress + WooCommerce。我想通过他们的ID获取这些帖子。在循环中,我被

<?php 
    while (have_posts()) { the_post(); $count++; 

     // post data from "Single_Menu" custom field 
     echo do_shortcode(get_post_field("menu_listing", $post->ID)); 

    } // End WHILE Loop 

调用自定义字段这是网页

[{"id":"435"},{"id":"527"},{"id":"563"},{"id":"568"}] 

这就是在后端元包什么回报。我想要的是返回与这些ID相关的实际帖子。有谁知道我能做到这一点?

回答

0

您可以使用内置的php函数json_decode将该json字符串转换为数组数组或对象数组。

$json = '[{"id":"435"},{"id":"527"},{"id":"563"},{"id":"568"}]'; 
$array = json_decode($json); 

您现在有一个可以使用的对象数组。将这些ids放入另一个数组中作为get_posts的参数参数的一部分。

$include = array(); 
foreach($array as $a) { 
    $include[] = $a->ID; 
} 

$args = array('posts_per_page' => -1, 'include' => $include); 
$posts = get_posts($args); 

$posts现在是您可以随意使用的后期对象数组。

+0

我在想同样的事情,但都没有工作。我把你的代码放在循环中,字符串“[{”id“:”435“},{”id“:”527“},{”id“:”563“},{”id“:”568“ }]“是所有的返回。我认为这是一个小故障(我的网站没有更新),所以我等了几个小时,我也重新启动了我的机器。我也试过这个:'$ json = do_shortcode(get_post_field(“menu_listing”,$ post-> ID)); \t \t $ array = print_r(json_decode($ json,true)); \t \t的$ args =阵列( \t \t \t 'post_type'=> '产品', \t \t \t 'meta_query'=> $包括 \t \t); \t \t $ posts = get_posts($ args);' 并且仍然只是返回字符串。 – aleks1217

+0

我的网站现在可能没有更新。我只是尝试删除我的PHP文件中的所有代码,字符串仍然出现在网页上。 – aleks1217

+0

我几天来一直在玩这个游戏,并且没有得到我想要的结果。我能够实现的最好的功能是页面拉动所有帖子,而不仅仅是$ json字符串的一部分。 – aleks1217

相关问题