警告:Call_User_Func()要求参数1是有效的回调

时间:2015-10-18 作者:Mr.Smith

这是我的代码:

$array_theme_options = array(
    array(
        \'id\' => \'facebook_url\',
        \'title\' => \'Facebook Profile Url\',
        \'callback\' => \'display_facebook_element\',
        \'page\' => \'theme-options\',
        \'type\' => \'text\'
    )
);


function input_type($id, $type)
{
    switch ($type) {
        case \'text\':
            $input = \'<input type="text" name="\' . $id . \'" id="facebook_url" value="\' . get_option($id) . \'" />\';
        break;
        case \'checkbox\':
            $input = \'<input type="checkbox" name="\' . $id . \'" value="1" \'.checked(1, get_option($id), true). \' />\';
        break;
    }
    return $input;
}



function display_theme_panel_fields()
{
    global $array_theme_options;
    add_settings_section("section", "All Settings", null, "theme-options");

    foreach ($array_theme_options as $ato) {
        $cf = create_function(\'$id, $type\',\'return input_type($id, $type);\');
        $input_type = $cf($ato[\'id\'], $ato[\'type\']);

        add_settings_field($ato[\'id\'], $ato[\'title\'], $input_type, $ato[\'page\'], "section");
        register_setting("section", $ato[\'id\']);
    }
}
add_action("admin_init", "display_theme_panel_fields");
我在输入时得到这个错误enter image description here

1 个回复
SO网友:s_ha_dum

您尚未定义调用display_facebook_element, 至少你没有在发布的代码中包含这一点。因此,您得到了错误。display_facebook_element 不是有效的回调。它不存在。

相关推荐

自定义发布类型的POST_ROW_ACTIONS

我正在使用this 在WordPress Admin中具有重复post函数的代码。但是,当我为自定义帖子类型添加过滤器时,如下所示:add_filter( \'directory_row_actions\', \'rd_duplicate_post_link\', 10, 2 ); (自定义帖子类型的注册名称为directory) - 它不会将其添加到条目标题下的操作行中。当我为帖子或页面执行此操作时,如下所示:add_filter( \'post_row_actions\', \'rd_dup