错误消息的最后一部分是您的第一条线索。我在多个版本的 WP 上遇到过同样的问题。在某些环境中,安装无法识别第三方类。你可以做几件事来尝试解决这个问题:
- 检查你的类文件的权限,看看你是否有足够的权限
- 检查您的类是否正在加载,例如将它们明确包含在您的 functions.php 文件中(不是理想或推荐的方法)
我发现一直有效的一个解决方案是:
- 创建需要通过插件管理器激活的骨架插件
- 您的插件文件应该包含您想要使用的所有类。
- 激活您的插件。完毕。
这种方法可以通过几种不同的方式来实现;第一个是您可以定义一个驻留在当前主题目录中的插件目录 - 这可以让您将所有文件放在一起;二是走正常路线,在wp-content/plugins/my-skeleton-plugin
. 如果您使用这种方法,这里有一个骨架插件可以帮助您入门:
<?php
/*
Plugin Name: Skeleton Plugin Base
Plugin URI: http://www.yourdomain.com
Description: This is a base plugin to use as a template for other plugins.
Author: Author Name
Version: v0.0.1
Author URI: http://www.yourdomain.com
*/
# +------------------------------------------------------------------------+
# PLUGIN URL AND PATH CONSTANTS
# +------------------------------------------------------------------------+
/**
* Don't depend on WP to always provide a consistent directory/path to use.
* Extrapolate one the location of this file. The reason for this is that some
* themes might re-locate the plugins and themes directory to another folder
* and therefore break the normal WP structure.
*/
define( DS, DIRECTORY_SEPARATOR, true );
$PLUGIN_URL = WP_PLUGIN_URL . DS . str_replace( basename( __FILE__ ),'', plugin_basename(__FILE__) );
$PLUGIN_DIR = dirname(__FILE__);
define( MY_PLUGIN_URL, $PLUGIN_URL, true );
define( MY_PLUGIN_DIR, $PLUGIN_DIR, true );
# +------------------------------------------------------------------------+
# INCLUDES
# +------------------------------------------------------------------------+
/**
* Include the plugin.
*/
// Use include() if you prefe
include_once( MY_PLUGIN_DIR . '/inc/classes/my_skeleton_plugin.class.php' );
try
{
/**
* Initialize the plugin
*/
}
catch( Exception $e )
{
throw $e;
}