2014-12-02 144 views
0

我使用的是先進的自定義字段臨插件,並以其靈活的場PHP/WordPress的警告:破滅()[function.implode]:無效的參數傳遞

我越來越爲每個佈局相關以下PHP警告到implode我使用的$displayCat變量:

Warning: implode() [function.implode]: Invalid arguments passed in /server-path/wp-content/themes/theme-name/page-home.php on line XX 

我認爲這是因爲$displayCat並不總是一個數組,所以試圖把$displayCat = array();但這並沒有消除警告。

任何想法?

if(have_rows('home_content')): 

    // loop through the rows of data 
    while (have_rows('home_content')) : the_row(); 

     // 1x1 Nav 
     if(get_row_layout() == '1x1_nav'): 

     $img = get_sub_field('img'); 
     $alt = get_sub_field('alt'); 
     $url = get_sub_field('url'); 
     $displayCat = implode('" "', get_sub_field('display_cat')); 
+0

你到底想幹什麼? 'get_sub_field('display_cat')'應該返回一個字段... – rnevius 2014-12-02 13:36:32

+0

據我的理解,'get_sub_field()'不能返回一個數組...你只能用'while循環遍歷值... – RichardBernards 2014-12-02 13:36:46

+0

應該在Wordpress開發者堆棧交換,而不是堆棧溢出。 – cybermonkey 2014-12-02 13:36:56

回答

1

get_sub_field()不返回數組...它返回一個字符串。既然你試圖讓數組超出個體線,你應該做到以下幾點:

$displayCat[] = get_sub_field('display_cat'); 

這將每個'display_cat'子場追加到$displayCat陣列。

然後,你while()循環之外,你可以implode(' ', $displayCat);

+0

認爲這可行,但直到今天上午才嘗試實施。我得到'PHP致命錯誤:[]運算符不支持字符串' – Keefer 2014-12-03 15:50:41

+0

'$ displayCat'是在while()'循環之前的某處定義的嗎? – rnevius 2014-12-03 15:52:23

+0

不,它在'while()'的單個if語句中。 – Keefer 2014-12-03 15:57:26

相關問題