如何判断选项是否已创建,而不是空选项?

时间:2012-09-19 作者:N2Mystic

测试数据库中是否存在选项的方法是什么?

不是选项的值,只是选项存在。

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

当您尝试获取不存在的选项时,这些选项会在内存中缓存它们不存在的事实。因此,您可以检查该缓存以确定差异。

$value = get_option(\'example\');
$notoptions = wp_cache_get( \'notoptions\', \'options\' );
if ( isset( $notoptions[\'example\'] ) ) {
    // option does not exist
} else {
    // option exists, $value is legit
}

SO网友:Chip Bennett

或者,你可以通过考试NULL 默认设置为get_option(), 然后进行测试:

if ( NULL === get_option( $option, NULL ) ) {
    // Option value is NULL;
    // do something
}
我建议使用NULL 作为默认值,而不是false, 有些选项可能会合法地返回布尔值,但永远不会合法地返回NULL.

SO网友:kaiser

这是一个很好的问题!

基本上你可以做一些事情来绕过它,但最简单的是检查你的选项是否是“自动加载”选项中的数组键之一。

看看add_option()s 定义:第四个参数是yes, 上面写着“将我添加到自动加载选项”。

如果是这种情况,只需检查数组键,如下例所示:

function wpse65658_check_autoload_option( $opt_name )
{
    if ( in_array( 
         $opt_name
        ,array_keys( wp_load_alloptions() )
    ) ) 
        return true;

    return false;
}

结束

相关推荐