我正在尝试创建一个将使用外部api和wpdb类的类,但是我在try-catch块中已经遇到了问题,请确认以下内容是正确的:
<?php
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-config.php' );
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-includes/wp-db.php' );
class LoLApi
{
private $database;
public function __construct()
{
try {
$this->database = new wpdb('user', 'pass', 'table', '127.0.0.1');
$this->database->show_errors();
} catch (Exception $e) {
return $e->getMessage();
}
}
}
?>
在另一页:
<?php
session_start();
require 'includes/lolapi.class.php';
$api = new LoLApi;
exit();
?>
您应该检查它是否返回WP_Error对象。如果WP_Error类不存在,它只会消亡并转储一条错误消息。它在任何地方都没有抛出异常。
如果包含wp-load.php,则会有wp_Error类可用,并且可以在返回的数据中检查它。您还可以扩展wpdb类并重写db_connect方法,以引发适当的异常,而不是在连接失败时终止脚本。