使用$wpdb获取多个数据库前缀

时间:2012-09-21 作者:pixelngrain

我已经安装了wordpress和question2answer作为单一登录。wordpress以wp\\uuux和question2answer为前缀创建的数据库是qa_

现在,wordpress表不需要用$wpdb->定义前缀,但如果没有前缀为的查询,我如何才能得到question2answer表,我更喜欢下面的内容

$titles = $wpdb->get_results("
        SELECT title
        FROM qa_posts // with qa_ prefix
    ");
它给出了标题的输出,但我想要下面这样的代码,我不必像wordpress默认表一样定义qa\\uuPrefix

$titles = $wpdb->get_results("
        SELECT title
        FROM posts // without prefix
    ");

1 个回复
最合适的回答,由SO网友:marfarma 整理而成

编写一个使用$wpdb->前缀作为回退的函数。类似这样:

function wpse65880_table_with_prefix($table) {

    // should define array in config file, rather than hard coding
    $my_tables = array("table1", "table2", "table3", "table4");

    if (in_array($table, $my_tables)) {
        // "qa_" should also be a config file setting
        return "qa_" . $table;
    }
    else return $wpdb->prefix . $table;
}

$table_name = wpse65880_table_with_prefix(\'post\');

$titles = $wpdb->get_results("
    SELECT title
    FROM $table_name // reflects current prefix
");

结束

相关推荐

如何从wp_list_table中的POST类型中删除某些屏幕选项和表列?

在我们列出所有帖子的页面上:example.domain.com/wp-admin/edit.php右上角有一个屏幕选项选项卡。单击此按钮后,菜单将向下滑动。此下拉菜单中包含复选框。选中或取消选中这些复选框时,将显示/隐藏post表中的某些列,具体取决于是否选中这些列。我正在寻找一种方法,以编程方式获取此帖子类型(默认帖子类型:post)的所有注册屏幕选项的列表。一旦我获得这些注册屏幕选项的列表,我将检查是否列出了特定的选项数组。如果它们与列出的项目匹配,我计划删除这些选项。Click Here For