让插件使用不同的表前缀会导致权限问题

时间:2011-10-05 作者:todgil

我有多个wordpress网站,它们使用相同的文件和数据库,但具有不同的表前缀,我使用一个插件“Shortcode Exec PHP“我想在所有网站上使用相同的短代码,但这个插件没有使用自己的表,它使用了wp的update\\u option函数来存储数据。

因此,我尝试在插件代码的顶部添加以下内容:

$wpdb->prefix = "mainsiteprefix_";
但我得到了一个错误:

您没有足够的权限访问此页面。

在所有不使用该前缀且插件已激活的站点的管理页面上。

那么,我怎样才能使插件使用我想要的任何db前缀而不出现权限问题呢?

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

使用完数据库前缀后,需要恢复它,如下所示

global $wpdb;
$previousPrefix=$wpdb->prefix;
$wpdb->prefix="mainsiteprefix_";
//Database access goes here
$wpdb->prefix=$previousPrefix;
或者,您可以创建一个新的wpdb对象,如下所示:

$wpdb2 = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST );

结束

相关推荐

$wpdb在插件内的页面上似乎不起作用

我有一个插件文件夹foobar。在这个插件中,我有一个名为foobar的页面。php。在这页里我有global $wpdb; $orderby = (!empty($_REQUEST[\'orderby\'])) ? $_REQUEST[\'orderby\'] : \'name\'; //If no sort, default to title $sql = \"SELECT * FROM wp_nc_location ORDER BY \" .