【发布时间】:2020-09-14 11:30:54
【问题描述】:
您好,我尝试构建可以安装和激活其他插件的插件。插件已成功解压到“wp-content/plugins”文件夹,但在 activate_plugin() 函数运行时出现错误,它返回“插件没有有效的标头。”。我做错了吗?
这是我的插件脚本:
<?php
define( 'WP_ADMIN', TRUE );
define( 'WP_NETWORK_ADMIN', TRUE );
define( 'WP_USER_ADMIN', TRUE );
require_once('../../../wp-load.php');
require_once(ABSPATH.'wp-admin/includes/admin.php');
require_once(ABSPATH.'wp-admin/includes/file.php');
require_once(ABSPATH.'wp-admin/includes/plugin.php');
try {
$post = $_POST;
// file_put_contents('logs.txt', json_encode($post));die;
foreach($post['plugins'] as $key => $value){
if($value['is_external_link'] == 0){
$file_url = $post['url_download']."/{$value['id']}";
}else{
$file_url = $value['external_link'];
}
$tmp_file = download_url($file_url);
copy($tmp_file, $value['file_name']);
unlink($tmpfile);
// extract plugin to plugins folder
$zip = new ZipArchive;
$zip->open($value['file_name']);
$zip->extractTo(ABSPATH.'wp-content/plugins/');
$zip->close();
// remove zip file
unlink($value['file_name']);
// activate plugin
$res = activate_plugin(ABSPATH.'wp-content/plugins/'.$value['folder_name']);
file_put_contents("logs$key.txt", $res->get_error_messages());
}
} catch (\Throwable $th) {
file_put_contents('log.txt', $th);
}
【问题讨论】:
-
所以您的插件脚本用于安装任何其他插件,并且任何人都可以在插件文件夹中使用?
标签: wordpress