サポート » 使い方全般 » 固定ページのサブメニュー追加方法について

  • お世話になります。

    固定ページの量が多くなり、見辛い状態になってしまいました。
    以下のように管理画面を出来たら良いと考えています。
    ——————————————-
    管理画面
    投稿
    メディア
    固定ページ
    |
    |-固定ページ一覧
    |-プロジェクトA
    |-プロジェクトB
    コメント
    外観
    (以下省略)
    ——————————————-
    固定ページの中のサブメニューにもう一つ固定ページと同じ扱いのサブメニュー
    を追加出来る方法はありますでしょうか。
    add_submenu_page関数を使ったのですが、固定ページの様な扱いが
    理解不足のためか、うまく出来ませんでした。

    
    <?php
    // 管理メニューに追加するフック
    add_action('admin_menu', 'mt_add_pages');
    
    // 上のフックに対する action 関数
    function mt_add_pages() {
        // 「固定ページ」下に新しいサブメニューを追加
        add_pages_page( __('pages_page','menu-test'), __('pages_page','menu-test'), 'manage_options', 'testtools', 'mt_tools_page');
    }
    // mt_tools_page() は pages_page サブメニューのページコンテンツを表示
    function mt_tools_page() {
        echo "<h2>" . __( 'pages_page', 'menu-test' ) . "</h2>";
    }
    ?>
    

    また、プラグインにあるadvanced custom fieldsも使いたいので、オプションで使える
    acf_add_options_page関数を使ってみたのですが、固定ページとして扱いうのとは違うので
    スラッグが付けれないため、page-hogehoge、等のパーマリンクが使えないため困っております。

    何か解決方法があれば教えていただきたいです。
    よろしくお願いします。

    • このトピックはsaki-sakiが2年、 7ヶ月前に変更しました。
6件の返信を表示中 - 1 - 6件目 (全6件中)
  • CG

    (@du-bist-der-lenz)

    固定ページにサブメニューを追加なら以下のページが参考になるのではないでしょうか。

    WordPress 管理画面のカスタマイズ まとめ

    こちらの「サイドメニュー」->「カスタムメニューを追加」->「サブメニュー」

    add_action('admin_menu', 'option_menu_create');
    function option_menu_create() {
        add_theme_page('配色', '配色', 'edit_themes', basename(__FILE__), 'option_page_create');
    }
    function option_page_create() {
        require TEMPLATEPATH.'/admin-option.php';
    }

    外観メニューに「配色」というメニューを追加するコードですが、
    add_theme_pageをadd_pages_pageにして、「配色」を好きな言葉に、
    admin-option.phpの部分を表示させたいページのリンクにすればいいのではないでしょうか。

    >プラグインにあるadvanced custom fieldsも使いたいので
    こちらは、何をしたいのかよくわかりません。

    以上、参考まで。

    CG様
    プラグインのご紹介ありがとうございます。
    確かに、見やすい仕様になりましたが、基盤となる固定ページ一覧には全て表示されてしまいますね。。。
    ご協力ありがとうございました。

    ioxrxogi様
    ご回答していただきありがとうございました。
    説明が下手で申し訳ないですが、こちらの方法では、固定ページ扱いではないので
    http://www.hoge.co.jp/admin-option/
    で接続はできないですよね。

    上記のように、固定ページには登録せず、管理画面では、サブメニューもしくはメニューとして編集できる固定ページ扱いのページを制作したいです。

    >>こちらは、何をしたいのかよくわかりません。
    失礼致しました。確かに文章が変でした。
    advanced custom fieldsというプラグインを使いたいので、acf_add_options_page関数を使って
    メニューに追加することも可能でしたが、スラッグ等を登録するようなものでは無いため固定ページのように【http://www.hoge.co.jp/hoge/】と接続しても404ページが表示するだけでした。

    もっと簡素にやりたいことを書きますと、固定ページに登録せず、page-hoge.php
    に接続するためにはどうすればよいでしょうか。

    説明が下手で申し訳ないですが、何かわかればご回答していただければ幸いです。

    CG

    (@du-bist-der-lenz)

    わたしも期待はずれでした。プラグインのコードに参考できるヒントが有ることを期待して紹介したまでですから、打ち捨ててください。最初に請け負ったサイトが、当初予定した固定ページに親子として追加されることが繰り返され、固定ページ一覧が大きく二分化されるものになり、メンテナンスでも大変だったので、以来、随時増えていくことが予測できるケースでは事前にカスタム投稿タイプをセットとして準備することを提案しています。

    やっぱり、よくわからないのですが?

    >もっと簡素にやりたいことを書きますと、固定ページに登録せず、page-hoge.php
    に接続する

    わたしの提示した方法でできると思いますが。
    (admin-option.phpの代わりにpage-hoge.phpを書けば、呼び出せると思うのですが)

    ただ、
    >編集できる固定ページ扱いのページ

    この編集というのが、作ったサブメニューのリンクで呼び出した管理画面上ということなら、
    ちょっとわかりませんが。

    CG様
    ご返事していただき、ありがとうございました。
    やはりカスタム投稿なりサブディレクトリ構造にするなりで対処するしかいなのですかね。
    ありがとうございました。

    ioxrxogi様
    説明不足で申し訳ございませんでした。
    おっしゃる通り

    add_action('admin_menu', 'option_menu_create');
    function option_menu_create() {
        add_pages_page('配色', '配色', 'edit_themes', basename(__FILE__), 'option_page_create');
    }
    function option_page_create() {
        require TEMPLATEPATH.'/page-hoge.php';
    }
    

    と記述すれば、管理画面の固定ページ→配色にpage-hogeの内容が写し出されました。

    私がしたいことは、
    http://www.hoge.co.jp/hoge/に接続した時に、固定ページに登録せずとも
    http://www.hoge.co.jp/hoge/を表示させればと思います。(ここのアドレスはブラウザに直接打ち込むアドレスです。)
    それができれば、advanced custom fieldsのオプションを使えば固定ページが大量になることもなく
    advanced custom fieldsのオプションで作ったカスタムフィールド値を取得できるのかな。と思いました。

    WordPressの基本的なことをお聞きして申し訳ございませんが、固定ページに登録せずに、page-hoge.phpをテーマの中に作って、ブラウザで表示することは可能なのでしょうか。
    言い方が難しいですが、固定ページに限らず、自分で作ったオリジナルのphpページをテーマの中に入れてそれを読み込むことは可能なのでしょうか。

    例:hoge.phpをテーマの中に入れて
    http://www.hoge.co.jp/hoge/で接続出来るようにする

    管理画面の話から逸れてしまいましたが、上記の質問を別トピックスで立てたほうが良ければそちらでお聞きいたします。
    失礼致しました。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「固定ページのサブメニュー追加方法について」には新たに返信することはできません。