PHP Notice - Custom Function

时间:2016-11-09 作者:JoaMika

我正在使用此代码:

function the_alt_title($title= \'\') {
    $page = get_page_by_title($title);
    if ($p = get_post_meta($page->ID, "_x_entry_alternate_index_title", true)) {
        $title = $p;
    }

    return $title;
}
add_filter(\'the_title\', \'the_alt_title\', 10, 1);
正在调试中。我得到的日志

PHP Notice:  Trying to get property of non-object in /var/www/html/wp-content/themes/my-child/functions.php on this line:

 if ($p = get_post_meta($page->ID, "_x_entry_alternate_index_title", true)) {
我怎样才能解决这个问题?

2 个回复
最合适的回答,由SO网友:ngearing 整理而成

$page = get_page_by_title($title) - 该行在某个地方出现故障,因此您应该对此进行检查以确保它存在。

像这样:

function the_alt_title($title= \'\') {
    $page = get_page_by_title($title);
    if (!$page) {
        return $title;
    }

    if ($p = get_post_meta($page->ID, "_x_entry_alternate_index_title", true)) {
        $title = $p;
    }

    return $title;
}
add_filter(\'the_title\', \'the_alt_title\', 10, 1);

SO网友:Dhul Wells

必须全球化页面才能访问它。

    function the_alt_title($title= \'\') {
    global $page; //here
    $page = get_page_by_title($title);
    if ($p = get_post_meta($page->ID, "_x_entry_alternate_index_title", true)) {
        $title = $p;
    }

    return $title;
}
add_filter(\'the_title\', \'the_alt_title\', 10, 1);

相关推荐

即使WP_DEBUG设置为FALSE也会发出警告

链接https://vreqenz-stream.de/shop/ 在某些设备上打开而在其他设备上打开时引发警告<我认为这可能是cahce的问题,但我已经从WP rocket和浏览器中清除了缓存。只是为了获取信息,我正在使用Plesk web管理工具下面是我的WP\\U配置设置ini_set(\'log_errors\',\'On\'); ini_set(\'display_errors\',\'Off\'); ini_set(\'error_reporting\', E_ALL )