2014-04-03 85 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

相關問題