(モデレータのメモ:元のタイトルは「エラーの取得:このページにアクセスするための十分な権限がありません。カスタムプラグイン ")
私は自分自身のカスタムWordPressプラグインを書き込もうとしていますが、メニューをクリックするとすぐに次のエラーが表示されます。
このページにアクセスするための十分な権限がありません。
私のプラグインは以下の場所にあります。
/wp-content/plugins/wp-e-commerce-group-pricing/wp-e-commerce-group-pricing.php
コードは以下の通りです、私はWordPressの初心者なので、多分私は何か間違ったことをしています:
if ( is_admin() ) {
// Hooks and admin menu setup
add_action('admin_menu', 'add_options_gp');
function add_options_gp() {
add_submenu_page('wpsc-sales-logs','WPEC - Group Pricing','Group Pricing',7,
'wp-e-commerce-group-pricing', 'price_options');
}
function price_options(){
// Page content goes here...
}
}
問題はadd_submenu_page()
への呼び出しにあると思います。
add_submenu_page('wpsc-sales-logs',...
最初のパラメータは、あなたのメニューページの "slug"への参照である必要があります。つまり、代わりに'edit.php'
を使うと、 "Posts"メニューページの下にメニューオプションが表示されます。
add_submenu_page('edit.php','WPEC - Group Pricing','Group Pricing', 7,
'wp-e-commerce-group-pricing', 'price_options');
これは次のようなものです。
(出典: mikeschinkel.com )
そのため、あなたはあなたのメニューページがどのURLフラグメント(http://yoursite.com/wp-admin/
を過ぎた部分)を使っているかを知る必要があります。
将来の読者のために、ローランドの問題はフック優先の問題でした。彼の場合、優先順位を10から11に変更して修正しました。
add_action('admin_menu', 'add_options_gp',11);
P.S 'admin_menu'
フックを使用しているので、is_admin()
に対してテストするif
ステートメントは本当に必要ありません。それは管理者だけで起動します。
他のメニュー項目にサブメニューページとして追加しても表示され、機能しますか?確実に機能するようにこれを試してください。唯一の問題はスラグです。私が見たいと思ういくつかの点は、親プラグインフォルダーとそこにあるadd_menu_pageの検索です。
あなたのwp eコマースフォルダを覗くならば:行71-96の上のwp-e-コマース> wpsc-admin> admin.phpあなたはそれがどのようにそれがプラグインでされるかという方法を見つけるでしょう。
@マイク: これがダウンロードリンクです
add_object_page( $page_title, $menu_title, $access_level, $file, $function = '', $icon_url = '');
を'admin.php?page=wpsc-sales-logs'
または'wpsc-sales-logs'
と一緒に使用してください。
あるいはadd_submenu_page('wpsc-sales-logs', __('WPEC - Group Pricing', 'wpsc'), __('Group Pricing', 'wpsc'), 7, 'wpsc-sales-logs', 'price_options');
のようなものを使うか、(上記のファイルの)99-108行目のwp-e-commerceプラグインファイルからの参照を見てください。