从Options表中的数据创建阵列

时间:2015-02-01 作者:pSyToR

大家好,

我正试图从wordpress的选项表中的数据创建一个数组。

我的数据都以相同的方式开始,然后是字段信息的名称。

有没有办法提取所有这些数据并使用WordPress命令创建数组?

或者,唯一的方法是使用适当的“SQL查询”,我想很多人都说在WordPress中不要这样做?

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

$all_options = wp_load_alloptions();
$plugin_order_options = array();
foreach( $all_options as $name => $value ) {
    if(stristr($name, \'plugin_order_\')) $plugin_order_options[$name] = $value;
}
print_r($plugin_order_options);
用通俗易懂的英语:

我们加载所有WP选项$all_options. 我们从复制选项$all_options$plugin_order_options 如果其名称包含plugin_order_. 我们打印$plugin_order_options. 我们挠头,对浏览器定制的单间距字体的大小感到不满。我们应该让它默认。

正如@Rarst所述,wp_autoload_options() 将检索所有自动加载选项或所有选项(如果不存在自动加载的选项)。因此,如果上述代码对您不起作用,您可能需要尝试以下代码:

$options = $wpdb->get_results( "SELECT * FROM $wpdb->options ORDER BY option_name" );

foreach ( (array) $options as $option ) :
    if ( $option->option_name == \'\' )
        continue;
    $name = esc_attr( $option->option_name );
    if(stristr($name, \'plugin_order_\'))
        $plugin_order_options[$name] = is_serialized( $option->option_value ) ? 
            maybe_unserialize( $option->option_value ) :
            $option->option_value;
endforeach;

print_r($plugin_order_options);
它基本上从wp_options 表,以及plugin_order_ 以他们的名义将价值传递给我们$plugin_order_options 大堆这次我还检查数据是否序列化,并尝试取消序列化。

结束

相关推荐

对多个数据库使用相同的MySQL用户

正如我们所知,为了连接WP 对于数据库,我们应该定义mysql username 和wp config中的密码。php,所以在这一点上,我有一个关于安全性或(某种连接错误)的问题:it is good practice using same mysql user with many databases有一件事是,我没有看到任何有关这方面的麻烦,但我想总有一天会有麻烦的:)希望你能理解,谢谢