我想創建一個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中使用的名稱相同?或者我錯過了什麼? –