wordpress - Wordpress 插件仅适用于本地主机(不适用于远程主机)
问题描述
我有一个使用 OOP 的插件,它可以在我的本地主机上完美运行,但不能在我的 Bluehost 服务器上运行。它不需要 Composer 自动加载以外的任何依赖项(我已将 composer 生成的供应商文件夹和 json 上传到远程插件文件夹)。我知道插件正在激活,因为它正在为我的 wp_options 生成空数据库条目。但是我的 add_menu_page 函数没有在我的管理仪表板中生成选项页面。
我确保本地主机和远程主机运行相同版本的 PHP(7.2+)和 Wordpress(5.0.3)
我已经禁用了所有其他插件并尝试在二十九主题中使用 uding,所以我非常确信这不是由于冲突造成的。
我在 wp_config 中启用了调试并且没有收到任何错误。
我的 Bluehost 错误日志中没有错误
下面是我的 Dashboard.php 的示例....我只是发布它,因为缺少菜单选项是我未知错误的症状,但我不认为这是原因
<?php
/**
* @package ICUPlugin
*/
namespace Inc\Pages;
use Inc\Api\SettingsApi;
use Inc\Base\BaseController;
use Inc\Api\Callbacks\AdminCallbacks;
use Inc\Api\Callbacks\ManagerCallbacks;
/**
*
*/
class Dashboard extends BaseController
{
public $settings;
public $callbacks;
public $callbacks_mgr;
public $pages = array();
//public $subpages = array();
public function register()
{
$this->settings = new SettingsApi();
$this->callbacks = new AdminCallbacks();
$this->callbacks_mgr = new ManagerCallbacks();
$this->setPages();
//$this->setSubpages();
$this->setSettings();
$this->setSections();
$this->setFields();
$this->settings->addPages( $this->pages )->withSubPage( 'Dashboard'
)->register();
}
public function setPages() {
$this->pages = array(
array(
'page_title' => 'ICU Plugin',
'menu_title' => 'ICU',
'capability' => 'manage_options',
'menu_slug' => 'icu_plugin',
'callback' => array( $this->callbacks, 'adminDashboard' ),
'icon_url' => 'dashicons-store',
'position' => 110
)
);
}
public function setSettings() {
$args = array(
array(
'option_group' => 'icu_plugin_settings',
'option_name' => 'icu_plugin',
'callback' => array( $this->callbacks_mgr, 'checkboxSanitize'
)
)
);
$this->settings->setSettings( $args );
}
public function setSections() {
$args = array(
array(
'id' => 'icu_admin_index',
'title' => 'Settings Manager',
'callback' => array( $this->callbacks_mgr,
'adminSectionManager' ),
'page' => 'icu_plugin'
)
);
$this->settings->setSections( $args );
}
public function setFields() {
$args = array();
foreach( $this->settingsManagers as $key => $value ) {
$args[] = array(
'id' => $key,
'title' => $value,
'callback' => array( $this->callbacks_mgr, 'checkboxField' ),
'page' => 'icu_plugin',
'section' => 'icu_admin_index',
'args' => array(
'option_name' => 'icu_plugin',
'label_for' => $key,
'class' => 'ui-toggle'
)
);
}
$this->settings->setFields( $args );
}
}
解决方案
推荐阅读
- python - 如何使用python 2.7或更低版本读写parquet文件
- python - 轴值未显示为 python 中的 DataFrame
- sql-server - 从链接的 MS SQL 服务器复制数据库
- scala - SparkML - 使用 RegressionEvaluator() 同时获取多个指标
- scala - 无法在 spark-shell 中连接到 Cassandra
- php - laravel中数组验证下的验证
- python - 在 PySpark 中加入两个具有空值的数据帧时出现问题
- javascript - Angular 6:如何访问 mat-autocomplete 下拉列表中的所有选项值?
- django - django/celery 多个队列不消耗任何任务
- exception - Xamarin 表单:在 UWP 中使用 displayactionsheet 时出现异常(Android 部分工作正常)