我想创建一个PHP的while循环为WordPress的内容填充到一些Gravityforms字段。我使用的是先进的自定义字段与中继器领域获得的内容,然后尝试使用eval()在while循环中创建函数,就像这样:WordPress的:功能里面while循环与名称变量
if(have_rows('tickets', 'option')) :
while(have_rows('tickets', 'option')) : the_row();
$shortname = get_sub_field('short_name');
$image = get_sub_field('image');
add_filter('gform_field_value_' . $shortname . '_img', 'populate_' . $shortname . '_img');
eval("
function populate_{$shortname}_img($value) {
return $image;
}
");
endwhile;
endif;
的问题是,我得到这个错误:
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'populate_test_img' not found or invalid function name in /srv/www/nordstan/htdocs/wp-includes/plugin.php on line 235
(我得到的这些倍数,当然,和$短名称的变量之一是“测试”。)
但是,如果我改变了“返回$图像”到“返回'测试'”,没有错误信息被打印,并且整个事情被正确执行,所以功能s被创建。
我在做什么错?
在此先感谢!
为什么不只是改变','populate_'。 $短名称。 '_img''关闭? ',function($ value){return $ image});'顺便说一句,你要返回'$ image',它在该函数的作用域中是未定义的。 –
因为它必须与add_filter中使用的名称相同?或者我错过了什么? –