在WordPress中使用MySQL查询检索小部件数据

我已经建立了多个动态侧栏来进行首页项操作。每个侧边栏都包含一个文本小部件, 我想从wp_options中检索每个小部件的内容(根据小部件ID)。
基本上, 结构为dbName-> wp_options-> option_id#92包含以下内容:

a:9:{i:2; a:0:{}i:3; a:3: {s:5:"title"; s:0:""; s:4:"text"; s:2:"mainItem"; s:6:"filter"; b:0; }i:4; a:3: {s:5:"title"; s:0:""; s:4:"text"; s:9:"leftThree"; s:6:"filter"; b:0; }i:5; a:3: {s:5:"title"; s:0:""; s:4:"text"; s:10:"rightThree"; s:6:"filter"; b:0; }i:6; a:3: {s:5:"title"; s:0:""; s:4:"text"; s:8:"rightTwo"; s:6:"filter"; b:0; }i:7; a:3: {s:5:"title"; s:0:""; s:4:"text"; s:8:"rightOne"; s:6:"filter"; b:0; }i:8; a:3: {s:5:"title"; s:0:""; s:4:"text"; s:7:"leftOne"; s:6:"filter"; b:0; }i:9; a:3: {s:5:"title"; s:0:""; s:4:"text"; s:7:"leftTwo"; s:6:"filter"; b:0; } s:12:"_multiwidget"; i:1; }

[实际上全部在一行上。]
【在WordPress中使用MySQL查询检索小部件数据】我想检索以下字符串:
  • mainItem
  • leftOne / leftTwo / leftThree
  • rightOne / rightTwo / rightThree
这种查询的语法是什么?以及如何将其添加到PHP模板中?
#1 你可以像这样从数据库中获取有关小部件类型的所有信息:
$text_widgets = get_option( 'widget_text' );

无需使用mySQL即可实现。这将返回所有存储的” 文本” 类型的小部件的数组。然后, 你可以遍历此数组, 并对每个内部属性进行处理, 如下所示:
foreach ( $text_widgets as $widget ) { extract( $widget ); // now you have variables: $mainItem, $leftOne, $leftTwo, etc. // do something with variables }

或者, 如果你已经知道要与之交互的小部件的ID, 则可以访问以下属性:
$mainItem = $text_widgets[17]['mainItem'];

#2 请尝试以下代码段。它返回所有小部件存储的数据的数组。
//1. Initialize variables $datahttp://www.srcmini.com/= ''; $all_stored_widgets = array(); //2. Get all widgets using - `$GLOBALS['wp_widget_factory']` $all_widgets = $GLOBALS['wp_widget_factory']; foreach ($all_widgets-> widgets as $w => $value) {$widget_data = http://www.srcmini.com/get_option('widget_' . $value-> id_base ); foreach ($widget_data as $k => $v) { if( is_numeric( $k ) ) { $data['id'] = "{$value-> id_base}-{$k}"; $data['options'] = $v; $all_widgets_css[$value-> id_base][] = $data; } } }// 3. Output: echo '< pre> '; print_r( $all_stored_widgets ); echo '< /pre> ';

输出如下:
在WordPress中使用MySQL查询检索小部件数据

文章图片

    推荐阅读