Plugin can't be activated

时间:2014-09-13 作者:sjiamnocna

我正在开发WordPress插件,但最后的更改导致插件停止工作。它告诉我无法激活插件,因为它导致了致命错误。在localhost上,一切正常,但在发送到服务器后,激活时会显示以下内容:

无法在/data/web/virtuals/72282/virtual/www/wp-content/plugins/wp-songbook/inc/wpsongs-shorts中的写入上下文中使用函数返回值。php在线83

我真的不理解这条消息的上下文,因为这行代码是:

$ytlink=(isset(get_post_meta(get_the_ID(),\'songbook_video_link\')))?get_post_meta(get_the_ID(),\'songbook_video_link\'):false;
有人能告诉我发生了什么事吗?

1 个回复
最合适的回答,由SO网友:Dave Romsey 整理而成

问题的根源在于isset 期望向其传递一个变量。另外,我假设你期望get_post_meta() 为了返回标量值而不是数组,我将第三个参数集添加为true。

// 3rd param: $single. Value of true means get scalar value, not an array.    
$ytlink = get_post_meta( get_the_ID(), \'songbook_video_link\', true );

// Will ensure that $ytlink is boolean false, and not an empty string.
$ytlink = ( ! empty( $ytlink ) ) ? $ytlink : false;

结束

相关推荐

REGISTER_ACTIVATION_HOOK()不激活插件

我正在写一个插件,在激活时必须在数据库中创建一个新表。为此,我使用:register_activation_hook( __FILE__, \'createTable\' ); 当我运行激活时,我的插件在数据库中创建新表,但当插件页面重新加载时,我的插件被列为非活动。所以我仍然有链接:激活|删除。为什么会这样?如何修复?以下是我的功能: function createTable(){ $link = mysql_connect(\'localhost\'