导出和导入所有插件选项

时间:2013-07-14 作者:Downloadtaky

实际上,我正在为Wordpress开发一个新的免费插件,部分基于此插件框架:Sunrise framewok, 每个选项的名称开头如下:

my_plugin_
所以每次我需要回显和选择时,我只需写下:

echo get_option(\'my_plugin_option_example\') 
一切都按预期进行。

现在我想创建一个导入/导出页面(这不是问题,我已经设法创建了新选项卡)。

我不明白的是如何将此函数性添加为(据我所知)此函数:

get_alloptions()
已弃用。我在这里意识到了这个功能:wpNettuts现在我担心它很快就会变得无用。有没有人能解决这个问题?

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

这个Codex suggests 您使用的wp_load_alloptions 相反

因此,我建议您使用wp_load_alloptions. 我认为这从技术上回答了这个问题。

wp_load_alloptions 将从选项表中提取所有选项,而您的问题并没有解释为什么需要这样做。你真的只需要my_plugin_* 选项,因为这将是一个不同的答案?如果是这样的话,我知道没有“通过通配符获取选项”函数,但构造起来并不困难。

function get_options_by_wildcard($prefix = \'\') {
  if (empty($prefix)) return false;
  global $wpdb;
  $ret = array();
  $options = $wpdb->get_results(
    $wpdb->prepare("SELECT option_name,option_value FROM {$wpdb->options} WHERE option_name LIKE %s",$prefix.\'%\'),
    ARRAY_A
  );
  if (!empty($options)) {
    foreach ($options as $v) {
      $ret[$v[\'option_name\']] = maybe_unserialize($v[\'option_value\']);
    }
  }
  return (!empty($ret)) ? $ret : false;
}
var_dump(get_options_by_wildcard(\'my_plugin_\'));
你的插件应该“知道”它的一个选项是什么,这样你就可以通过循环插件选项来完成它,而不需要另一个查询。例如,假设您的插件是一个类,并且可用的插件选项存储在class变量中plugin_options:

function get_my_plugin_options() {
  $ret = array();
  foreach ($this->plugin_options as $v) {
    $ret[$v] = get_option($v);
  }
  return $ret;
}
var_dump(get_my_plugin_options());

SO网友:meth0dz

这是你的答案,我相信它会帮助你

https://pippinsplugins.com/building-settings-import-export-feature/

结束

相关推荐

Woocommerce Custom CSV export

过去几天我一直在想办法解决这个问题。是否有一个插件可以导出CSV,其中订单项都在同一行,但不在同一列单元格中?示例:项目名称\\u 01、项目数量\\u 01、项目变动\\u 01、项目金额\\u 01、项目总价\\u 01、项目名称\\u 02、项目数量\\u 02、项目变动\\u 02、项目金额\\u 02、项目总价\\u 02我购买了Woocomece Exporter,但它没有这种能力。它要么是一列中的所有产品,要么是列在自己行中的所有产品。我被告知,这两个选项都无法导入到我的组织数据库中,因为导