我在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表。
答案 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'");
?>
抱歉英文不好。