在主机的PHP升级后开始收到警告消息

时间:2020-04-08 作者:Martyn

我使用的儿童主题是2122(客户总是对的)。

我最近开始在仪表板顶部和仪表板的Jetpack面板上看到以下警告机器人:

“警告:在第81行的/home/leytongr/public\\u html/wp-content/plugins/theme-logo-plugin/themelogo.PHP中使用未定义的常量register\\u设置-假定“register\\u设置”(这将在PHP的未来版本中引发错误)。”

这是从第80行开始的代码,您将看到我在这里提出查询的原因:

function tl_init(){ 
     if(function_exists(register_setting))
     { register_setting("tl-options", "tl_logo_src"); } 
}
如果您能建议一种重新编码此部分的方法,以便警告消息消失,我将不胜感激(该网站仍能正常工作,但我有点担心PHP更新可能会改变这一点)。

期待中的感谢

1 个回复
SO网友:Jacob Peattie

问题是这一行:

if(function_exists(register_setting))
register_setting 不在引号中。不带引号的值是指constants 在PHP中,但没有使用该名称的常量,因为它应该是\'register_setting\', 带引号。

PHP意识到了这个错误,并将其解释为好像您已经包含了引号,但它警告您,它将来不会这样做,所以您应该现在修复它。因此,只需添加引号即可解决问题。您还可以在处理时清理格式。

function tl_init(){ 
    if ( function_exists( \'register_setting\' ) ) {
        register_setting( \'tl-options\', \'tl_logo_src\' );
    } 
}
也就是说,您可能可以删除该条件。这是一种向后兼容性措施,以确保与旧版本的WordPress兼容,旧版本的WordPress没有此功能,但该功能已经在WordPress中使用了12年。您无需再进行检查:

function tl_init(){ 
    register_setting( \'tl-options\', \'tl_logo_src\' );
}

相关推荐

如何通过unctions.php为现有帖子类型启用块编辑器(Gutenberg)

我很难弄清楚如何为主题中的现有帖子类型启用块编辑器。我宁愿通过函数来编辑它。php在我的子主题中,而不是编辑主题本身。这是我在研究中发现的代码,但使用register\\u post\\u type\\u args过滤器和“show\\u in\\u rest”似乎不起作用。代码如下:function ux_portfolio_block_editor( $args, $post_type ) { if ( $post_type == \"featured_item\" ) {