Wordpress获取当前站点的数据库表

时间:2014-06-02 14:12:08

标签: database wordpress

我在wordpress中使用多站点功能,我的数据库有点混乱(3个站点):

wp_posts
wp_2_posts
wp_3_posts
wp_comments
wp_2_comments
...

我正在创建与数据库一起玩的插件。我需要它知道它应该采取哪个表:例如,第一个站点必须使用wp_posts,第二个站点 - 使用wp_2_posts等等。是否有任何变量或功能可以实现?

如果我在查询中写,例如select * from wp_posts,这个插件将在每个站点中使用wp_posts表。

2 个答案:

答案 0 :(得分:0)

您需要使用BLOG_ID_CURRENT_SITE常量,它会检索当前的博客ID。要获取当前博客的表格前缀,例如:wp_BLOGID_,您可以使用$wpdb方法get_blog_prefix()

$blog_prefix = $wpdb->get_blog_prefix(BLOG_ID_CURRENT_SITE); // wp_posts or wp_2_posts so on..

然后您可以像这样使用您的查询:

"SELECT * FROM " . $blog_prefix . "posts" 

答案 1 :(得分:-1)

你必须使用wpdb类(查看链接),你会发现很多关于操作数据库的信息。

该类自动获取当前站点数据库。

要从数据库中获取数据而不必对表名进行硬编码,您必须:

<?php 
    global $wpdb;
    //This is the name of the post table
    echo $wpdb->posts 

    $wpdb->query("SELECT * FROM $wpdb->posts WHERE post_status = 'publish'");

?>

抱歉英文不好。