2014-01-11 86 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