如何在Wordpress插件中添加数组的add_option? (例如,将“文件”添加到“文件”列表中)

时间:2014-03-15 01:29:18

标签: php wordpress-plugin wordpress

我希望我的插件设置页面包含所有当前托管文件的列表,并允许他们添加新的文件路径。像这样:

浏览器中的虚构布局

Files Managed:
    * /wp-content/plugins/myplugin/files/file1
    * /wp-content/plugins/myplugin/files/file1
    * /wp-content/plugins/myplugin/files/file1
Add New File:
    [File_Name]
    [submit]

我将如何实现这一目标?以前,我只是将页面提交到options.php(Wordpress内置选项处理程序),但这完全取代了该选项,并且不允许添加其他选项。

唯一的"解决方案" 我能够提出(看起来很容易)是处理自己并执行此操作:

/* They've submitted the new file to manage, so we're in a POST situation */

//Get the existing options
$existing = get_option( "managed_files" );

//First time (doesn't exist yet)
if ( $existing === false ) add_option( "managed_files", array( $_POST[ "filename" ] ) );

//Already exists
else
{
    //Add to current values
    array_push( $existing, $_POST[ "filename" ] );

    //Update Option
    update_option( "managed_files", $existing );
}

这是唯一的方法吗?

1 个答案:

答案 0 :(得分:1)

试试这个,

$existing = get_option( "managed_files" );

//First time (doesn't exist yet)
if ( empty($existing) ){
    add_option( "managed_files", array( $_POST[ "filename" ] ) );
}
//Already exists
else
{
    //Add to current values
    //array_push( $existing, $_POST[ "filename" ] );
    $existing = array_merge($existing, array($_POST[ "filename" ]));

    //Update Option
    update_option( "managed_files", $existing );
}

我不确定array_pusharray_merge会完美无缺。

希望你能得到一些帮助。