我构建了一个WordPress插件Alessandro Castellani\'s 没有问题的教程。
然而,当我构建第二个插件并激活它时,由于某种原因,它会覆盖第一个插件。在侧栏中,我得到了同一(第二个)插件的两个链接,而第一个没有出现。即使我停用了第一个插件,第二个插件也会显示为double。
Desired Behaviour:这两个插件作为单独的单元工作。
Current Behaviour:它们似乎相互重叠,并从对方处获取设置,第二个从侧边栏中删除第一个设置。出现的是第二个插件两次。
我对插件有一个不同的名称,并在整个过程中引用此名称
/**
* @package PluginNumberTwo
*/
问题是否可能是因为BaseController中的构造函数几乎相同?
第一个插件:
namespace Inc\\Base;
class BaseController
{
public $plugin_path;
public $plugin_url;
public $plugin;
public function __construct(){
$this->plugin_path = plugin_dir_path( dirname( __DIR__ ) );
$this->plugin_url = plugin_dir_url( dirname( __DIR__ ) );
$this->plugin = plugin_basename(dirname(dirname(__DIR__))) .\'/first-plugin.php\';
...
}
}
第二个插件:
namespace Inc\\Base;
class BaseController
{
public $plugin_path;
public $plugin_url;
public $plugin;
public function __construct(){
$this->plugin_path = plugin_dir_path( dirname( __DIR__ ) );
$this->plugin_url = plugin_dir_url( dirname( __DIR__ ) );
$this->plugin = plugin_basename(dirname(dirname(__DIR__))) .\'/second-plugin.php\';
...
}
}
一个潜在的问题是,一些函数具有相同的名称。
public function register()
public function addPages( array $pages )
public function addAdminMenu()
public function setSettings( array $settings )
public function setSections( array $sections )
public function setFields( array $fields )
public function registerCustomFields()
这可能会导致问题吗?
此外,以下是每个插件文件开头的注释:
第一个插件:
<?php
/**
* @package FirstPlugin
*/
/*
Plugin Name: FirstPlugin
Plugin URI: https://example.com
Description: This is the first plugin.
Version: 1.0.0
Author: First Lastname
Author URI: http://www.example.com
*/
第二个插件:
<?php
/**
* @package SecongPlugin
*/
/*
Plugin Name: SecondPlugin
Plugin URI: https://example.com
Description: This is the second plugin
Version: 1.0.1
Author: Brad Ahrens
Author URI: http://www.example.com
*/
文件名完全相同(除了主文件夹名和初始的first-plugin.php/second-plugin.php文件)。