直接使用PHP操作WordPress数据库
使用WordPress的时候,有时候会有这样的需求,就是想直接使用WordPress里封装的数据库操作的类,对WordPress数据库进行读写查询等操作,这里就介绍一下具体的使用方法。
方法一:使用wp-load.php
在php文件开头,加入如下语句
define('WP_USE_THEMES',false);require_once($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');之后,就可以通过操作$wpdb类来进行数据库读写查询等操作。举例如下。
查询
<?php$wpdb->query("DELETEFROM$wpdb->postWHEREpost_id=1");?>读取
<?php$wpdb->get_results("SELECTID,post_titleFROM$wpdb->postsWHEREpost_status='draft'");?>读取一个变量
<?php$wpdb->get_var("SELECTSUM(meta_value)FROM$wpdb->postmetaWHEREmeta_key='views'");?>读取一行
<?php$wpdb->get_row("SELECT*FROM$wpdb->linksWHERElink_id=10");?>方法二:只用wp-db.php
在方法一里,wp-load.php还会继续加载一大堆文件,实际上,核心文件就只有wp-db.php,如果我们只是进行数据库操作,不进行其他操作,那么可以只加载wp-db.php这一个文件。
具体方法是:
复制wp-config.php文件为另一个文件,例如wp-config-db.php,编辑这个文件,将文件结尾处的require_once(ABSPATH.'wp-settings.php')一行删除。
将wp-db.php从wp-includes目录下复制到根目录下,编辑根目录下的wp-db.php文件,搜索filter,将包含这个词的语句删除。搜索foreach ( $modes as $i => $mode ),将这个语句的代码段删除。
之后,在php文件开头,加入如下几行。
require("./wp-config-db.php");require("./wp-db.php");global$wpdb;$wpdb=newwpdb(DB_USER,DB_PASSWORD,DB_NAME,DB_HOST);之后,就可以使用方法一里的读取查询语句了。
这个方法的好处是,可以不用安装WordPress的PHP系统,只需要两个文件:wp-config-db.php和wp-db.php就可以进行数据库操作了,数据库操作语句和原有WordPress系统的语句一样。