Wordpress activate_plugin()可以运行并返回;插件没有有效的标头。”;
您好,我试图建立插件,可以安装和激活其他插件。插件已成功提取到“wp content/plugins”文件夹,但在运行activate_plugin()函数时出错,返回“插件没有有效的头”。我做错了吗 这是我的插件脚本:Wordpress activate_plugin()可以运行并返回;插件没有有效的标头。”;,wordpress,Wordpress,您好,我试图建立插件,可以安装和激活其他插件。插件已成功提取到“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
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);
}
很好,你的代码在打开后就丢失了插件头哦,问题已经很清楚了,我只需要包含核心文件脚本,所以不要“wp-content/plugins/plugin-name/”,改为“wp-content/plugins/plugin-name/plugin-name.php”。这样你的插件脚本就可以用来安装任何其他插件,任何人都可以在plugins文件夹中使用吗?标题就在那里,我已经找到了解决问题的方法,我会把它放在评论中。
/**
* Plugin Name: My Basics Plugin
* Plugin URI: https://example.com/plugins/the-basics/
* Description: Handle the basics with this plugin.
* Version: 1.10.3
* Requires at least: 5.2
* Requires PHP: 7.2
* Author: John Smith
* Author URI: https://author.example.com/
* License: GPL v2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain: my-basics-plugin
* Domain Path: /languages
*/