错误:当使用IMAGE_SIZE_NAMES_CHOOSE时,CALLE_USER_FUNC_ARRAY()期望参数1为有效回调

时间:2019-05-01 作者:BlueDogRanch

我使用的示例来自add_image_size() | WordPress Developer Resources 尝试将自定义图像大小添加到管理媒体选择器。

add_filter( \'image_size_names_choose\', \'my_custom_sizes\' );

function my_custom_sizes( $sizes ) {
    return array_merge( $sizes, array(
        \'your-custom-size\' => __( \'Your Custom Size Name\' ),
    ) );
}
但我得到了一个PHP警告:

call\\u user\\u func\\u array()要求参数1为有效回调,未找到函数“my\\u custom\\u sizes”或函数名无效

并且媒体大小选择器为空:

media size selector

答案Adding custom image size to the media image editoradd_image_size and add_filter('image_size_names_choose', 'my_custom_image_sizes') not working with wordpress 3.5.2 不要工作。

我正在使用过滤器add_image_size 在…内after_setup_theme; 见下文。我在外面试过,运气不好。缩略图正在生成,而重新生成缩略图也很有效。

什么东西坏了?

function setup()
{

// other code


add_image_size( \'banner-ad\', 655, 100, true );
add_image_size( \'banner-rectangle\', 655, 250, true );


add_filter( \'image_size_names_choose\', \'my_custom_sizes\' );

function my_custom_sizes( $sizes ) {
    return array_merge( $sizes, array(
        \'banner-ad\' => __( \'Banner Ad\' ),
        \'banner-rectangle\' => __( \'Banner Rectangle\' ),
    ) );
}



// other code
}
add_action(\'after_setup_theme\', __NAMESPACE__ . \'\\\\setup\');

3 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

不能在另一个函数中定义挂钩回调函数。

您已定义my_custom_sizes() 在…内setup(), 也就是说my_custom_sizes() 无法在的范围外调用setup(). 这是个问题,因为钩子,image_size_names_choose, 不是在你的setup() 作用您需要在全局范围内定义回调:

function setup()
{
    add_image_size( \'banner-ad\', 655, 100, true );
    add_image_size( \'banner-rectangle\', 655, 250, true );

}
add_action(\'after_setup_theme\', __NAMESPACE__ . \'\\\\setup\');

function my_custom_sizes( $sizes )
{
    return array_merge( $sizes, array(
        \'banner-ad\' => __( \'Banner Ad\' ),
        \'banner-rectangle\' => __( \'Banner Rectangle\' ),
    ) );
}
add_filter( \'image_size_names_choose\', __NAMESPACE__ . \'\\\\my_custom_sizes\' );

SO网友:Welcher

尝试定义my_custom_sizes() 功能之外的setup() 作用

我很确定my_custom_sizes() 功能仅在setup() 函数-在image_size_names_choose 筛选器已启动,因此它不可用。

SO网友:Qaisar Feroz

Try this

function my_custom_sizes( $sizes ) {
    return array_merge( $sizes, array(
        \'banner-ad\' => __( \'Banner Ad\' ),
        \'banner-rectangle\' => __( \'Banner Rectangle\' ),
    ) );
}
add_filter( \'image_size_names_choose\', \'my_custom_sizes\' );


function setup()
{

// other code


add_image_size( \'banner-ad\', 655, 100, true );
add_image_size( \'banner-rectangle\', 655, 250, true );



// other code
}
add_action(\'after_setup_theme\', __NAMESPACE__ . \'\\\\setup\');

相关推荐

无法获取Function.php代码以删除实时站点上丢失的密码链接

从我的live站点中删除丢失的密码文本时遇到问题。出于某种原因,在彻底检查了几乎所有内容后(我想我一定错过了什么),文本仍在显示。我把它放在一个儿童主题中,并测试了儿童主题是“带来阅读”,它确实是。很奇怪。更改了PHP版本等,所有内容都是最新的,仍然显示。但在我的本地和现场测试站点上,它正在按需要删除。对于可能导致问题的原因,如有任何帮助,我们将不胜感激。function remove_lostpassword_text ( $text ) { if ($text == \'Lo