保存到选项时未定义的索引

时间:2018-11-03 作者:Alt C

$options = get_option(\'analytics\');
if ( ! preg_match( \'/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/\', $options[\'analytics_startdate\'] ) ) {
    $options[\'analytics_startdate\'] = \'2018-12-01\';
}
这会引发错误的原因:

未定义索引:analytics\\u startdate,

虽然我正在指定它。

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

虽然我正在指定它。

您实际上并没有指定它。您试图在regex中使用它,然后指定了它。

如果它不存在,则不能在“如果”标准中使用它。您需要先检查它是否存在。

如果未设置或已设置且与regex不匹配,则以下内容将设置您的值:

$options = get_option( \'analytics\' );
if ( ! isset( $options[\'analytics_startdate\'] ) || ! preg_match( \'/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/\', $options[\'analytics_startdate\'] ) ) {
    $options[\'analytics_startdate\'] = \'2018-12-01\';
}

结束

相关推荐

Debug errors on sidebar

我正在wordpress 3.8上使用一个儿童主题“Twenty14”。在调试模式下,我会遇到以下关于小部件的错误。注意:正在尝试获取\\wordpress\\wp content\\themes\\tema2014\\functions\\widgets中非对象的属性。php在线148update_post_meta($post->ID, \"_sidebar\", $_POST[\"link\"]); 以及注意:未定义的索引:link in\\wordpress\\wp content