【问题标题】:Wordpress activate_plugin() can run and return "The plugin does not have a valid header."Wordpress activate_plugin() 可以运行并返回“插件没有有效的标题”。
【发布时间】: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


【解决方案1】:

哦,问题已经很清楚了,我只需要包含核心文件脚本,所以不要“wp-content/plugins/plugin-name/”,改为“wp-content/plugins/plugin-name/plugin-”名称.php”。

【讨论】:

    【解决方案2】:

    显然,您的代码在打开 /** * 插件名称:我的基础插件 * 插件 URI:https://example.com/plugins/the-basics/ * 描述:使用此插件处理基础知识。 * 版本:1.10.3 * 至少需要:5.2 * 需要 PHP:7.2 * 作者:约翰·史密斯 * 作者 URI:https://author.example.com/ * 许可证:GPL v2 或更高版本 * 许可证 URI:https://www.gnu.org/licenses/gpl-2.0.html * 文本域:my-basics-plugin * 域路径:/languages */

    或者至少你需要插件名称来激活它!!

    【讨论】:

    • 标题在那里,我已经找到了我的问题的解决方案,我会把它放在评论中。
    猜你喜欢
    • 1970-01-01
    • 2018-07-30
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多