自定义php函数错误不存在

时间:2018-07-26 作者:Tyler

当尚未定义模板时,我能够成功地为新页面设置默认页面模板member_home_page.php.

这在我的本地环境中非常有效,但当我将代码上传到WP Engine上的网站时,我在WordPress的管理页面编辑屏幕顶部发现了这个错误。

Warning: call_user_func_array() expects parameter 1 to be a valid callback, function \'set_default_page_template\' not found or invalid function name in /nas/content/staging/pmbus/wp-includes/class-wp-hook.php on line 288
无论是在本地部署还是实时部署上,该功能都能正常工作。但在本地,我没有得到错误,只有现场。下面是函数,我只是不知道为什么我只在现场收到这个警告。提前谢谢。

function set_page_template_default() {

    global $post;

    if ( \'page\' == $post->post_type
        && 0 != count( get_page_templates( $post ) )
        && get_option( \'page_for_posts\' ) != $post->ID // Not the page for listing posts
        && \'\' == $post->page_template // Only when page_template is not set
    ) {
        $post->page_template = \'member_home_page.php\';
    }

}

add_action(\'add_meta_boxes\', \'set_page_template_default\', 1);

1 个回复
SO网友:Vishwa

您得到一个错误,因为它正在查找名为的函数set_default_page_template 而您似乎有一个名为set_page_template_default.

我不确定您是否没有名为set_default_page_template 或者您后来将其重命名。但这就是错误所在。WP找不到您的挂钩,因为它不存在。

您应该重命名set_default_page_templateset_default_page_template (如果这是您需要的函数)或者您应该创建一个新函数并将其命名为set_default_page_template

结束