最近研究了下WordPress,和Discuz!一样,本身也有数据库操作类,所以抽空检索并整理出来以备日后使用。

引入数据库类,需要先引入WordPress根目录的一个文件,我的测试文件就在根目录,所以引入代码如下:

require_once( dirname(__FILE__) . '/wp-load.php' );

引入后,即可通过:

global $wpdb;

来使用数据库类$wpdb。

下面介绍下$wpdb的一些方法:
get_results:直接取出结果到数组,第二个参数output_type这个常量表示输出什么样的结果。

$resulr=$wpdb->get_results('sql query', output_type);

OBJECT – 对象.
OBJECT_K – 以列名为键值的对象
ARRAY_A – 以列名为键值的数组
ARRAY_N – 以数字为键值的数组
测试代码:

<?php
require_once( dirname(__FILE__) . '/wp-load.php' );
global $wpdb;
$result_arr = $wpdb->get_results("select ID from wp_posts where 1 order by ID limit 1", OBJECT);
var_dump($result_arr);
echo "\r\n";
$result_arr = $wpdb->get_results("select ID from wp_posts where 1 order by ID limit 1", OBJECT_K);
var_dump($result_arr);
echo "\r\n";
$result_arr = $wpdb->get_results("select ID from wp_posts where 1 order by ID limit 1", ARRAY_A);
var_dump($result_arr);
echo "\r\n";
$result_arr = $wpdb->get_results("select ID from wp_posts where 1 order by ID limit 1", ARRAY_N);
var_dump($result_arr);
echo "\r\n";

输出结果:

array(1) {
[0]=>
object(stdClass)#166 (1) {
["ID"]=>
string(1) "1"
}
}
array(1) {
[1]=>
object(stdClass)#167 (1) {
["ID"]=>
string(1) "1"
}
}
array(1) {
[0]=>
array(1) {
["ID"]=>
string(1) "1"
}
}
array(1) {
[0]=>
array(1) {
[0]=>
string(1) "1"
}
}

如何获取文章后输出:

<?php
require_once( dirname(__FILE__) . '/wp-load.php' );
global $wpdb;
$result_arr = $wpdb->get_results("select ID from wp_posts where 1 order by ID limit 1", ARRAY_N);
query_posts(array( 'post_type' => 'post', 'post__in' => $result_arr));
while(have_posts()){
the_post();
$output[] = get_the_title();
$output[] = str_replace('<br/>',"\r\n",get_the_content());
$output[] = get_permalink();
$output[] = get_lastpostmodified();
$output[] = get_the_ID();
var_dump($output);
}
wp_reset_query();

暂时就整理这些,以后遇到需要的再查缺补漏好了。

经验来自:http://www.cnblogs.com/huangcong/archive/2011/07/12/2104398.html

Related Posts: WordPress数据库类$wpdb部分使用总结 :