对比WordPress两站点get_plugins()结果 提取共有插件版本差异
实现代码
// 筛选两个站点共同安装的插件(取插件路径的交集) $common_plugin_keys = array_intersect(array_keys($plugins_site_one), array_keys($plugins_site_two)); // 生成结构化结果数组,可直接用于后续业务处理 $plugin_compare_result = []; foreach ($common_plugin_keys as $plugin_path) { // 插入站点1的插件信息 $plugin_compare_result[] = [ 'plugin_file' => $plugin_path, 'name' => $plugins_site_one[$plugin_path]['Name'], 'version' => $plugins_site_one[$plugin_path]['Version'], 'site' => 'site_one' ]; // 插入站点2的插件信息 $plugin_compare_result[] = [ 'plugin_file' => $plugin_path, 'name' => $plugins_site_two[$plugin_path]['Name'], 'version' => $plugins_site_two[$plugin_path]['Version'], 'site' => 'site_two' ]; } // 如需输出参考格式的HTML表格,执行以下代码即可 echo '<table class="s-table"> <thead> <tr> <th>插件文件</th> <th>名称</th> <th>版本</th> <th>所属站点</th> </tr> </thead> <tbody>'; foreach ($plugin_compare_result as $item) { vprintf("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>", $item); } echo '</tbody></table>';
说明
WordPress的get_plugins()返回值的键为插件主文件的相对路径,是插件的唯一标识,因此取键的交集即可准确筛选出两个站点都安装的公共插件,生成的$plugin_compare_result数组结构和要求的输出完全匹配,可直接用于后续处理。
内容的提问来源于stack exchange,提问作者John Smith
相关产品推荐
相关产品推荐

