大家好,
我正试图从wordpress的选项表中的数据创建一个数组。
我的数据都以相同的方式开始,然后是字段信息的名称。
有没有办法提取所有这些数据并使用WordPress命令创建数组?
或者,唯一的方法是使用适当的“SQL查询”,我想很多人都说在WordPress中不要这样做?
大家好,
我正试图从wordpress的选项表中的数据创建一个数组。
我的数据都以相同的方式开始,然后是字段信息的名称。
有没有办法提取所有这些数据并使用WordPress命令创建数组?
或者,唯一的方法是使用适当的“SQL查询”,我想很多人都说在WordPress中不要这样做?
$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
大堆这次我还检查数据是否序列化,并尝试取消序列化。正如我们所知,为了连接WP 对于数据库,我们应该定义mysql username 和wp config中的密码。php,所以在这一点上,我有一个关于安全性或(某种连接错误)的问题:it is good practice using same mysql user with many databases有一件事是,我没有看到任何有关这方面的麻烦,但我想总有一天会有麻烦的:)希望你能理解,谢谢