WordPress:从小部件代码访问数据库

Posted

技术标签:

【中文标题】WordPress:从小部件代码访问数据库【英文标题】:WordPress: Access Database From Widget Code 【发布时间】:2013-06-26 17:19:06 【问题描述】:

如何访问我的 WordPress 数据库并从小部件代码运行 SQL? (我需要从小部件代码访问我的插件之一的设置)

【问题讨论】:

也许你不需要 SQL 查询。目标是什么?能发下相关代码吗? 【参考方案1】:

如果您想从数据库中检索一些信息,您可以使用四个辅助函数之一来查询数据库并检索数据。

get_results():

这是我们之前看到的函数。当您需要二维数据(多行和多列)时,它是最好的。它将数据转换为一个数组,其中包含每一行的单独对象。

get_row():

当您只需要在数据库中查找一个特定的行(例如,具有最多 cmets 的帖子)时,您可以使用 get_row()。它将数据拉入一维对象。

get_col():

此方法与 get_row() 非常相似,但它获取的不是单行结果,而是单列。如果您只想检索评论最多的前 10 个帖子的 ID,这将很有帮助。与 get_row() 一样,它将您的结果存储在一维对象中。

get_var():

在许多情况下,您只需要数据库中的一个值;例如,您的一位用户的电子邮件地址。在这种情况下,您可以使用 get_var 将其作为简单值检索。该值的数据类型将与其在数据库中的类型相同

一个例子:

<?php
$drafts = $wpdb->get_results("SELECT ID, post_title FROM wp_posts WHERE post_status = 'draft' AND post_author = 5");
foreach ( $drafts as $draft )
    echo $draft->post_title;

?>

文档:http://codex.wordpress.org/Class_Reference/wpdb

来源:http://wp.smashingmagazine.com/?p=98071

希望这会有所帮助。

【讨论】:

FROM $wpdb-&gt;posts 应该是 FROM wp_posts ?这是我找到的 WP DB 图:codex.wordpress.org/Database_Description。有一天它可能会帮助某人...... :)【参考方案2】:

您可以查看此http://codex.wordpress.org/Class_Reference/wpdb 以获取完整文档。在简历中,您可以从小部件代码的任何部分执行以下操作:

global $wpdb;
$rows = $wpdb->get_results( "SELECT id, name FROM table" );

【讨论】:

【参考方案3】:

只需在文件中包含wp-blog-header.php

require('yourpath/wp-blog-header.php');

global $wpdb;

$result=$wpdb->get_results("SELECT * FROM table");

var_dump($result);

【讨论】:

以上是关于WordPress:从小部件代码访问数据库的主要内容,如果未能解决你的问题,请参考以下文章

RUST + FLTK:从小部件 on_push() 函数访问另一个小部件

从小部件扩展访问核心数据

从小部件的父级访问坐标

试图从小部件访问状态,可能使用了错误的设计

将数据从小部件传递到应用程序

Wordpress:在不使用文本小部件的情况下将 html 代码添加到小部件区域