在 WordPress 中使用 MySQL 查询检索小部件数据
Posted
技术标签:
【中文标题】在 WordPress 中使用 MySQL 查询检索小部件数据【英文标题】:Retrieving widget data with MySQL query in WordPress 【发布时间】:2010-12-14 05:21:44 【问题描述】:我已经为首页项目操作建立了多个动态侧边栏。每个侧边栏都包含一个 Text 小部件,我想从 wp_options 检索每个小部件的内容(根据小部件 ID)。
基本上,结构是dbName -> wp_options -> option_id #92
包含以下内容:
[其实都是一行。]
我想检索以下字符串:
主要项目 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】:试试下面的代码 sn-p。它返回所有小部件存储数据的数组。
// 1. Initialize variables
$data = '';
$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 = 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 查询检索小部件数据的主要内容,如果未能解决你的问题,请参考以下文章
在 WordPress 中使用 MySQL 查询检索小部件数据
PHP wordpress 中的一次查询中的双重 MySQL 查询