Plugin option default value

时间:2013-12-16 作者:ashraf

嗨,我正在创建插件默认选项集。我这样写代码。基本上,我想给插件文件夹中的图像路径。是我干的。

function add_scroll_default() {
$tmp = get_option(\'scroll_options\');
if((!is_array($tmp))) {
    $arr = array("top_image"=>"echo\'plugins_url( \'/image/top.png\', __FILE__ )\'");
    update_option(\'scroll_options\', $arr);
}
}

在检查数据库时,我发现存储的值

echo\'plugins_url( \'/image/top.png\', __FILE__ )\'
但我想把图片的url?谢谢

1 个回复
SO网友:fuxia

您的代码中有两个错误。

  1. "echo\'plugins_url( \'/image/top.png\', __FILE__ )\'" 没有执行,它只是一个看起来像PHP代码的字符串。您真正想要的是:

    $arr = array( "top_image"=> plugins_url( \'/image/top.png\', __FILE__ ) );
    
    不要在数据库中存储默认选项。使用第二个参数get_option( $option, $default ); 相反

    因此,每当获取选项时,请提供默认值作为第二个参数:

    $option = get_option( 
        \'scroll_options\', 
        array( 
            "top_image"=> plugins_url( \'/image/top.png\', __FILE__ ) 
        ) 
    );
    
    原因是您无论如何都不能依赖存储的值。它们可能已被删除,因此您必须始终提供默认值。

结束

相关推荐

private functions in plugins

我开发了两个插件,其中一个功能相同(相同的名称,相同的功能)。当试图激活两个插件时,Wordpress会抛出一个错误,因为它不允许我以相同的名称定义函数两次。有没有一种方法可以使这个函数只对插件私有,而不使用面向对象编程,也不简单地重命名函数?我不想使用OOP,因为我首先要学习它。此外,我不想重命名该函数,因为我可能也想在其他插件中使用它,而重命名感觉不太合适。