2014-01-11 76 views
0

我想限制一個WordPress模板文件內的內容,並使用一個名爲Paid Membershiphips Pro的插件來這樣做。WordPress的 - 將變量傳遞給函數 - 如何正確傳遞數字列表

下面的代碼限制內容到成員的1或2

if(pmPro_hasMembershipLevel(array(1,2))){ 
    restricted content goes here 
} 

「水平」問題是當我嘗試使用變量來提供水平。這些級別保存在字段名稱爲「pmpro_id」的自定義字段組「限制」中。我訪問這些級別使用模板內...

foreach($restrictions as $restriction){ 
    $temp=get_field('pmpro_id', $restriction->ID); 
    $temp_array[]=$temp; 
} 

$levels=implode(',', $temp_array); 

如果我再傳給$水平pmPro_hasMembershipLevel,如果只有一個級別,但未能這個工作正常,如果有2個或更多。我相信這是因爲變量類型是一個字符串而不是整數?我以前曾嘗試直接傳遞$ temp_array,雖然我覺得這不起作用並且是正確的。

我意識到這可能是PHP 101.我已經搜索,但並不真正知道我在找什麼老實說!我不是一名開發人員,這是阻止我完成這個項目的最後一件事,所以任何人都可以提供的幫助會很棒。提前致謝。

+0

你確定'$ temp_array'是否保存了正確的級別id?根據插件文檔([link here])(http://www.paidmembershipspro.com/documentation/advanced-techniques/require-membership-function/)),您可以將參數作爲參數傳遞給關卡標識,或者傳遞一個關卡標識數組。 所以使用'$ temp_array'(這是一個數組)作爲參數。 '$ levels'是一個字符串。 – andreivictor

回答

0

如果pmPro_hasMembershipLevel接受數組作爲其參數,則不需要內存$temp_array。當你爆炸一個數組時,你會得到字符串作爲返回值 - 這不是你想要的。如果你認爲這個問題可能與值的類型有關,那麼你可以嘗試將它們轉換爲整數,如下所示:$temp_array[]= (int) $temp;

+0

太簡單了 - 你說得對,它是字符串和整型之間的混淆。非常感謝您花時間幫助! – DevFox