質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1643閲覧

Wordpressダッシュボード上に固定ページ編集画面へのリンクボタンをカテゴリーごとに呼び出したい

Yucchi

総合スコア29

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2018/03/15 06:56

編集2018/03/26 08:01

まず、サイト構造上固定ページにカテゴリーを付けれるようにfunctions.phpに追記し、オリジナルのダッシュボードウィジェットを使用するため管理しやすいようadmin-menu.phpというファイルを読みこむよう設定しました。

admin-menu.phpの中でWordpressの管理画面ダッシュボードに各固定ページの編集画面へのリンクボタンを設置したのですが、
ページが多すぎてすべてのページを呼び出すととても探しにくくなっています。
ページが増える可能性があるので、ページIDで呼び出すのではなくforsearchでページを呼び出しています。

今回はこのボタンをカテゴリーごとに違うパネルで表示できたらいいと思っています。

下記が現状のコードなのですが、これに何を追記すればカテゴリーごとに記事を呼び出せるでしょうか?

どなたかお教えいただくと嬉しいです!

javascript

1//functions.php 2/* 固定ページにカテゴリーを付ける */ 3add_action('init','add_categories_for_pages'); 4function add_categories_for_pages(){ 5register_taxonomy_for_object_type('category', 'page'); 6} 7add_action( 'pre_get_posts', 'nobita_merge_page_categories_at_category_archive' ); 8function nobita_merge_page_categories_at_category_archive( $query ) { 9if ( $query->is_category== true && $query->is_main_query() ) { 10$query->set('post_type', array( 'post', 'page', 'nav_menu_item')); 11} 12} 13/* END 固定ページにカテゴリーを付ける */ 14 15/* オリジナルダッシュボードウィジェットを追加 */ 16require get_template_directory() . '/adminmenu/admin-menu.php';

javascript

1//admin-menu.php 2/* 各固定ページの編集画面へのリンクボタンを設置 */ 3function example_dashboard_widget_function() { 4 echo "<ul class='adminmenu'>"; 5 $pages = get_pages(); 6 foreach( $pages as $page ) { 7 echo '<li><a href="post.php?post='. $page->ID . '&action=edit"><div class="dashicons fa fa-pencil-square-o"></div><p>' . $page->post_title . '<br>ページ編集</p></a></li>'; 8 } 9 echo "</ul>"; 10} 11function example_add_dashboard_widgets() { 12 wp_add_dashboard_widget('example_dashboard_widget', '各固定ページの編集', 'example_dashboard_widget_function'); 13 global $wp_meta_boxes; 14 $normal_dashboard = $wp_meta_boxes['dashboard']['normal']['core']; 15 $example_widget_backup = array('example_dashboard_widget' => $normal_dashboard['example_dashboard_widget']); 16 unset($normal_dashboard['example_dashboard_widget']); 17 $sorted_dashboard = array_merge($example_widget_backup, $normal_dashboard); 18 $wp_meta_boxes['dashboard']['normal']['core'] = $sorted_dashboard; 19} 20add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' ); 21/* END 各固定ページの編集画面へのリンクボタンを設置 */

ヒントを頂いて上記のコードを下記の状態まで修正いたしました。
しかし、この状態では希望した表示にはならないようです…プログラミングはまだまだ分からないのでどなたかこの先どうすればいいかお教えください。

javascript

1function example_dashboard_widget_function() { 2 echo "<ul class='adminmenu'>"; 3 $new = new WP_Query(array( 4 'post_type' => 'page', /* イベント投稿タイプ */ 5 'category_name' => 'new', /* カテゴリのスラッグを指定 */ 6 'post_status' => 'publish', /* 公開している */ 7 8 )); 9 foreach( $new as $page ){ 10 if ( $new->have_posts() ) : 11 while ( $new->have_posts() ) : $new->the_post(); 12 echo '<li><a href="post.php?post='. $page->ID . '&action=edit"><div class="dashicons fa fa-pencil-square-o"></div><p>' . $page->post_title . '<br>ページ編集</p></a></li>'; 13 endwhile; 14 endif; 15 } 16wp_reset_postdata(); 17 echo "</ul>"; 18} 19function example_add_dashboard_widgets() { 20 wp_add_dashboard_widget('example_dashboard_widget', '各固定ページの編集', 'example_dashboard_widget_function'); 21 global $wp_meta_boxes; 22 $normal_dashboard = $wp_meta_boxes['dashboard']['normal']['core']; 23 $example_widget_backup = array('example_dashboard_widget' => $normal_dashboard['example_dashboard_widget']); 24 unset($normal_dashboard['example_dashboard_widget']); 25 $sorted_dashboard = array_merge($example_widget_backup, $normal_dashboard); 26 $wp_meta_boxes['dashboard']['normal']['core'] = $sorted_dashboard; 27} 28add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' ); 29

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/03/15 07:24

通常、固定ページにカテゴリーはありませんが。
guest

回答1

0

ベストアンサー

get_pagesでタクソノミー毎に引っ張るのは無理だと思うのでwp_queryでポストタイプを指定して取得してください。

https://naoyu.net/wordpress/tax_query/
tax_queryでターム毎に分類してカスタム投稿記事一覧を表示する

カスタム投稿となってますがpageに変えれば同じことです。

投稿2018/03/16 08:09

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yucchi

2018/03/27 05:59

先日はヒントを頂きありがとうございました。 お教えいただいたページを参考に色々試してはみたのですが分からず、再度質問を載せさせていただきました。現状試したことなども追記しております。 https://teratail.com/questions/119175 今一度お分かりになりましたらお助けいただけると嬉しいです。 せっかくヒントをいただいたのに解決できなく不甲斐ないですが大変ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問