Wordpress PHP 警告:从第 627 行 wp-admin\includes\post.php 中的空值创建默认值 object

Wordpress PHP warning: Creating default object from empty value in wp-admin\includes\post.php on line 627

我正在使用 Wordpress 4.2.2,Xampp 安装在 windows 和 PHP 5.6.8

我已将以下功能添加到我的主题 functions.php 以自动设置 post 类型的标题 'departure':

function custom_title() {
    if ($_POST['post_type'] == 'departure') :
        $post_title = 'Departure-'.$_POST['post_ID'];
        return $post_title;
    endif;
    }
 add_filter ( 'title_save_pre', 'custom_title' );

自定义 post 类型 "departure" 的标题设置工作正常。但是,当我尝试添加新的 wordpress 标准 post(即 post_type = post)时,出现以下错误:

警告:从第 627

行 wp-admin\includes\post.php 中的空值创建默认值 object

627行如下:

/**
 * Filter the default post content initially used in the "Write Post" form.
 *
 * @since 1.5.0
 *
 * @param string  $post_content Default post content.
 * @param WP_Post $post         Post object.
 */
$post->post_content = apply_filters( 'default_content', $post_content, $post );

所有其他 post 类型(即自定义类型和 wordpress 标准页面)工作正常。通过将 $_POST 数据转储到我看到的日志文件中,对于所有工作 post-types 一个空数组(即 array())作为 $_POST 数据传递。 "post" post 类型不会发生这种情况。

如果我在 functions.php 中注释函数,当添加新的 "post" post 类型时,一个空数组作为 $_POST 数据发送,问题就消失了。

有什么想法吗?

谢谢

您需要 return 一个值,即使 post 类型不是 departure。该函数应该有一个参数,并且 return something:

function custom_title($post_title) {
    if ($_POST['post_type'] == 'departure') {
        $post_title = 'Departure-'.$_POST['post_ID'];
    }
    return $post_title;
}
add_filter ( 'title_save_pre', 'custom_title' );