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

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

ただいまの
回答率

89.63%

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

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 196
退会済みユーザー

退会済みユーザー

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

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

・反映されない原因

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

投稿ページ右側の

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

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

//カスタムタクソノミー 果物
function create_post_type() {
    register_taxonomy(
        'fruits',
        'post',
        array(
        'labels' => array(
        'name' => '果物',
        ),
        'public' => true,
        'show_ui' => true,
    'hierarchical' => true,
        'show_in_rest' => true,
    ));
}
add_action( 'init', 'create_post_type' );

//カスタムタクソノミー 管理画面
function add_custom_column( $defaults ) {
$defaults['fruits'] = '果物';
return $defaults;
}
add_filter('manage_posts_columns', 'add_custom_column');
function add_custom_column_id($column_name, $id) {
if( $column_name == 'fruits' ) {
echo get_the_term_list($id, 'fruits', '', ', ');
}
}
add_action('manage_posts_custom_column', 'add_custom_column_id', 10, 2);

//管理画面果物検索追加
function add_post_restrict_taxonomy() {
  global $post_type;
  if ( 'post' == $post_type ) {
  ?>
    <select name="fruits">
      <option value="">果物一覧</option>
      <?php
      $terms = get_terms('fruits');
      foreach ($terms as $term) { ?>
        <option value="<?php echo $term->slug; ?>"><?php echo $term->name; ?></option>
      <?php } ?>
    </select>
  <?php
  }
}
add_action( 'restrict_manage_posts', 'add_post_restrict_taxonomy' );

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

・拡張を考えた場合

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

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • 退会済みユーザー

    退会済みユーザー

    2019/07/17 00:12

    返信ありがとうございます。

    カテゴリーですが、1つだけ表示したいと思ったので
    カテゴリを1つ選択(穀類、野菜、果物...等)、
    別入力欄で'果物の種類'を指定すればいいかな、と思っていました。

    create_post_type()
    →function create_fruit_taxnomy()
    こちらに変更し、値も反映されていると思っていたのですが、
    カテゴリ、タグ等個別で編集する部分からの果物の設定が
    投稿画面の部分へは反映されていない(値が渡っていない?)状況でした…。

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

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2019/07/17 00:16

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

    キャンセル

  • yukikp

    2019/07/17 00:23

    カテゴリーを一つだけ表示したいなら、普通にhtmlのテキストで
    果物 とか 桃
    と書けばよい気が。

    しかもターム一覧を作るという話と矛盾する気がするんです。
    一覧と言うのは、ずらーっと一目でわかるように並んでる状況なんですよね。

    キャンセル

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

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

  • ただいまの回答率 89.63%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる