エラー メッセージの最後の部分が最初の手がかりです。WP の複数のバージョンで同じ問題が発生しました。一部の環境では、インストールでサードパーティのクラスが認識されません。これを解決するために、おそらくできることがいくつかあります。
- クラス ファイルのアクセス許可をチェックして、十分な権限があるかどうかを確認します
- クラスがロードされていることを確認します。たとえば、明示的に functions.php ファイルに含めます (理想的または推奨される方法ではありません)。
私が見つけた1つの解決策は常にこれです:
- プラグイン マネージャーを介してアクティブ化する必要があるスケルトン プラグインを作成します。
- プラグイン ファイルには、操作するすべてのクラスが含まれている必要があります。
- プラグインを有効にします。終わり。
このアプローチは、いくつかの異なる方法で実現できます。1 つ目は、現在のテーマ ディレクトリに存在するプラグイン ディレクトリを定義できることです。これにより、すべてのファイルをまとめて保持できます。2 つ目は、通常のルートに進み、 の下にプラグイン フォルダを作成すること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;
}