无法在外部php文件上加载多个WordPress网站

时间:2019-04-18 12:40:34

标签: php wordpress plugins

我们在单个服务器上托管多个网站,我想在其中将所有网站插件加载到外部PHP文件中。我正在从主机配置文件中读取所有网站网址和托管目录路径。并在运行PHP foreach的地方传递每个网站的require(wp-load.php),但它仅加载第一个网站,而插件列表显示的仅适用于第一个网站。我正在从get_plugins()函数中获取插件。

这是用于AWS服务器,并使用PHP,MySql。

class Plugininfo{
 function EachSiteData($home_url,$abspath){
  if (is_file($abspath."/wordpress/wp-load.php")){
   define( 'WP_USE_THEMES', false );
   require_once($abspath."/wordpress/wp-load.php"); //Here it load only first website I tried to echo home url but it shows only first websites url.
   if ( ! function_exists( 'get_plugins' ) ) {
        $pluginfile_path= $abspath.'/wordpress/wp-admin/includes/plugin.php';
        require_once $pluginfile_path;
   }
   $all_plugins=array();
   $all_plugins = get_plugins();
   foreach($all_plugins as $url => $plugins){
    //Code to list all websites // currently its showing for first website
   }
 } //close function
}//close class

$server; //Is an array where I'm storing website's url in key and host path in value.

foreach ($servers as $key => $value) { //Creating object for each website
  $PlugininfoObject= new Plugininfo();
  $eachsite_data=$PlugininfoObject->EachSiteData($key,$value);
  $PlugininfoObject->DatabaseOperations($eachsite_data[0],$eachsite_data[1]);
  $PlugininfoObject->destroy();
  unset($PlugininfoObject);
}  

//问题是它仅加载了最后一个foreach循环中没有的第一个网站。

预期结果:它将加载所有wordpress并提供所有网站插件列表及其状态。所有网站仅在单个服务器上。

0 个答案:

没有答案