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

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

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

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

Q&A

0回答

372閲覧

wordpress5.2.2 投稿ページでタクソノミーが反映されない

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

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

0グッド

0クリップ

投稿2019/07/16 12:38

wordpressについて勉強しております。

反映されない原因と、拡張を考えた場合について、
2つアドバイスいただきたいです。

・反映されない原因

ローカルでは実現していますが、サーバ上では反映されませんでした。
wordpressのバージョンはどちらも5.2.2です

投稿ページ右側の

カテゴリv
タグv
アイキャッチ画像v

と並んでいる部分に、
"果物"を追加したいと思っています。

php

1//カスタムタクソノミー 果物 2function create_post_type() { 3 register_taxonomy( 4 'fruits', 5 'post', 6 array( 7 'labels' => array( 8 'name' => '果物', 9 ), 10 'public' => true, 11 'show_ui' => true, 12 'hierarchical' => true, 13 'show_in_rest' => true, 14 )); 15} 16add_action( 'init', 'create_post_type' ); 17 18//カスタムタクソノミー 管理画面 19function add_custom_column( $defaults ) { 20$defaults['fruits'] = '果物'; 21return $defaults; 22} 23add_filter('manage_posts_columns', 'add_custom_column'); 24function add_custom_column_id($column_name, $id) { 25if( $column_name == 'fruits' ) { 26echo get_the_term_list($id, 'fruits', '', ', '); 27} 28} 29add_action('manage_posts_custom_column', 'add_custom_column_id', 10, 2); 30 31//管理画面果物検索追加 32function add_post_restrict_taxonomy() { 33 global $post_type; 34 if ( 'post' == $post_type ) { 35 ?> 36 <select name="fruits"> 37 <option value="">果物一覧</option> 38 <?php 39 $terms = get_terms('fruits'); 40 foreach ($terms as $term) { ?> 41 <option value="<?php echo $term->slug; ?>"><?php echo $term->name; ?></option> 42 <?php } ?> 43 </select> 44 <?php 45 } 46} 47add_action( 'restrict_manage_posts', 'add_post_restrict_taxonomy' ); 48

上記のように記述しております。
グーテンベルグでは
'show_in_rest' => true,
上記記述がないと反映されない、という記事を見つけたので
何か関係あるかと思い関するものを調べてみましたが、分かりませんでした。

・拡張を考えた場合

現在投稿ページをテンプレートを使い
advance custom filed から複数値を取得し作成しているのですが
(ex.生産地、生産者、価格、etc)

タクソノミー"果物"のターム一覧ページ"りんご","桃"等を作る場合、
通常の投稿ページではなく、カスタム投稿を利用したほうがいいのでしょうか?

よろしくお願いいたします。

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

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

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

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

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

yukikp

2019/07/16 13:10

//カスタムタクソノミー 果物 function create_post_type() { //略 } add_action( 'init', 'create_post_type' ); まずこれだけ追加した段階で、投稿のサブメニューに果物(タクソノミー)は追加されていますか?
yukikp

2019/07/16 13:12

ちなみに、create_post_type() これだけ見ると、カスタム投稿タイプを追加するような名前なので、今後のことを考えて function create_fruit_taxonomy() { //略 } add_action( 'init', 'create_fruit_taxonomy' ); に変えちゃいましょう!
yukikp

2019/07/16 13:14

次に、wp-config.phpの define('WP_DEBUG', false); を define('WP_DEBUG', true); に変えて、管理画面の投稿一覧のページを見ると、なんかそれっぽいエラーが上の方に表示されませんか?
退会済みユーザー

退会済みユーザー

2019/07/16 14:41

返信ありがとうございます。 create_post_type() →function create_fruit_taxnomy() これらを変更しただけで、果物が反映されていました! define('WP_DEBUG', true);にしたところ、 カスタムフィールドから引っ張っていた別の項目に 投稿画面でエラーがあったので、そちらも直せました! 果物(タクソノミー)のターム一覧を作る場合、 ・タクソノミーテンプレート http://wpdocs.osdn.jp/%E3%82%BF%E3%82%AF%E3%82%BD%E3%83%8E%E3%83%9F%E3%83%BC%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88 上記のページの ・タクソノミー用テンプレートファイル作成 こちらのようにすればいいのでしょうか? よろしくお願いいたします。
yukikp

2019/07/16 14:59

果物(タクソノミー)のターム一覧を作る場合 と言うのがいまいちわからないんですよね。 本当に、単純にターム一覧を表示(リスト表示)させるだけなら、テンプレートファイルんを作成する必要はなく、wp_list_categories()関数を使えばいいだけですが、そういう意味合いじゃないんですよね。たぶん。
yukikp

2019/07/16 15:01

それか、get_termsで取得してforeachで回せば。 $termArr = get_terms( array( 'taxonomy' => 'fruits' ) ); foreach( $termArr as $term ){ // $term->term_id, $term->name, $term->slugなんかが使える }
yukikp

2019/07/16 15:04

create_post_type()を変更してうまく行ったのは、もしかしたら、create_post_typeという関数を他でも使いまわしてたりしませんでしたか? いずれにしろ、define('WP_DEBUG', true);すると色々見えてきていいですよね!
退会済みユーザー

退会済みユーザー

2019/07/16 15:12

返信ありがとうございます。 カテゴリーですが、1つだけ表示したいと思ったので カテゴリを1つ選択(穀類、野菜、果物...等)、 別入力欄で'果物の種類'を指定すればいいかな、と思っていました。 create_post_type() →function create_fruit_taxnomy() こちらに変更し、値も反映されていると思っていたのですが、 カテゴリ、タグ等個別で編集する部分からの果物の設定が 投稿画面の部分へは反映されていない(値が渡っていない?)状況でした…。 よろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2019/07/16 15:16

define('WP_DEBUG', true);は直感的に分かってすごくよかったです! create_post_type() の部分ですが、同じの使ってそうです。 調べてみます。ありがとうございます。
yukikp

2019/07/16 15:23

カテゴリーを一つだけ表示したいなら、普通にhtmlのテキストで 果物 とか 桃 と書けばよい気が。 しかもターム一覧を作るという話と矛盾する気がするんです。 一覧と言うのは、ずらーっと一目でわかるように並んでる状況なんですよね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問