別のPHPファイルにいくつかのクラスを書いて、ユーザーがプラグインオプションページのフォームに記入したときのAPIコールを手伝ってくれます。 私はオプションページにいくつかの変数を含めて設定ファイルを持っています。 問題は私がファイルを必要とするとき、致命的なエラーはないので大丈夫だと思われますが、変数やクラスはアクション 'admin_menu'にフックする関数で使用できません。プラグインのWordpress管理オプションページを書くときにファイルを含める
require_once(plugin_dir_path(__DIR__) . 'product-dyno/config.php');
require_once(plugin_dir_path(__DIR__) . 'product-dyno/license.php');
require_once(plugin_dir_path(__DIR__) . 'product-dyno/member.php');
function product_dyno_plugin_menu() {
add_options_page('Product Dyno Options', 'Product Dyno',
'manage_options', 'activate-plugin-with-product-dyno',
'product_dyno_options');
}
add_action('admin_menu', 'product_dyno_plugin_menu');
function product_dyno_options() {
$license = new License();
if (!current_user_can('manage_options')) {
wp_die(__('You do not have sufficient permissions to access this page.'));
}
echo '<div class="wrap">';
echo '<h2>Activate plugin '.$PLUGIN_NAME.'</h2>';
echo '</div>';
.......
$ PLUGIN_NAMEはconfig.phpから必須で、変数が定義されていないというエラーが表示されます。
奇妙なことに、クラスのコンストラクタ内で使用される変数もconfig.phpからインクルードされているので、そのクラスは含まれているように見えます。
すでに送信されているヘッダーやwpアクションの順序と関係があると思いますが、実際には動作できませんし、フォーラムでも同様の問題を見つけることはできません!
どのポインタも大変感謝しています!