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

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

ただいまの
回答率

87.61%

taxonomy.phpだけで各ターム記事一覧を表示する

解決済

回答 2

投稿 編集

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

退会済みユーザー

いつもお世話になります。
やりたいことははっきりしているのですが、ページ遷移や読み込まなければいけないテンプレートがどれなのか分からず混乱しています。
category.phpで作らないといけないのか、taxonomy.phpで作らないといけないのかも曖昧になっています。
(カスタムタクソノミーで作っているため前者ではないだろうことはなんとなく分かるのですが…)

ご教示いただければ幸いです。

やりたいこと

  • カスタムタクソノミーを使用してページを作りたい
    例) [ジャンル]というカスタムタクソノミーの[体験]がチェックされている記事のみの一覧ページを作りたい
  • 色・デザインが違うだけで、表示したい内容は一緒(記事名・写真・キャプション)

困っていること

  • taxonomy.php を作っても404.phpへ飛ばされる
  • taxonomy-{tarm}.phpで作らないとそもそもダメなのか(個別で作らずターム名で分岐したい)

バージョンや使用プラグイン

  • Wordpress 5.0.3
  • Advanced Custom Fields PRO 5.7.12
  • Custom Post Type UI 1.6.1

パーマリンク構造

https://www.hoge.co.jp/fugefuge//%postname%/ 

カスタムタクソノミーの登録内容(register_taxonomy で設定した内容)

CPT UIの設定を(ラベルやディスクリプション以外)登録済画面からそのままコピペしました

name: name
label: ラベル
singular_label: ラベル
description:ディスクリプション
public: true
publicly_queryable: true
hierarchical: true
show_ui: true
show_in_menu: true
show_in_nav_menus: true
query_var: true
query_var_slug: ""
rewrite: true
rewrite_slug: ""
rewrite_withfront: true
rewrite_hierarchical: false
show_admin_column: true
show_in_rest: true
show_in_quick_edit: ""
rest_base: ""
rest_controller_class: ""
meta_box_cb: ""

taxonomy.php の中身

<?php get_header(); ?>
<?php get_footer(); ?>

.htaccess の内容

#/.htaccess mbstring.e off
php_flag mbstring.encoding_translation off 
php_value default_charset "UTF-8"

php_value upload_max_filesize xxM
php_value post_max_size xxM

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /fugefuge/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /fugefuge/index.php [L]
</IfModule>
# END WordPress
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 2

checkベストアンサー

+2

どのテンプレートを用意したら良いかは、テンプレート階層 の概観図がわかりやすいと思います。


カスタムタクソノミーの場合は、テンプレート階層 の「カスタム分類表示」に記載されている通り、

  1. taxonomy-{taxonomy}-{term}.php
  2. taxonomy-{taxonomy}.php
  3. taxonomy.php
  4. archive.php
  5. index.php

の順で、利用されますので、taxonomy.php を作っているのであれば、それが利用されるはずですので、

taxonomy.php を作っても404.phpへ飛ばされる

が問題と思います。

テンプレートファイルを変更した場合に 404 が発生する場合ですが、よくあるのは、パーマリンクの設定が反映されていない場合ですが、WordPress 管理画面(ダッシュボード)で「設定」の「パーマリンク設定」画面を開いてそのまま「保存」ボタンを押すとどうなりますか?


これで、治らないのであれば、何か設定や記載内容に問題があると思われますが、質問の内容だけでは判断できません。

  • パーマリンク構造
  • カスタムタクソノミーの登録内容(register_taxonomy で設定した内容)
  • taxonomy.php の中身
  • .htaccess の内容

等を質問に追記することは可能でしょうか? (項目名等は、適宜置き換えてください。)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/02/18 19:55

    >CHERRY 様
    ありがとうございます。
    情報は追記しましたが、質問の書き込み後にtaxonomy-{taxonomy}.phpで作成したところ、やりたかったことについてはとりあえずできました(詳細は後ほど自己解決に書き込みます)

    ただ、相変わらずtaxonomy.phpにつなげようとすると404.phpに飛ばされるのと(これについては単に何も入れてないからだとは思いますが…)、できれば-{taxonomy}は入れずに動かしたいので、単純にtaxonomy-{taxonomy}.phpで入れた内容をtaxonomy.phpに入れたらいいのでは…?と素人考えでおります…。

    キャンセル

  • 2019/02/18 19:57

    >CHERRY 様
    すみません、1点書き漏れましたので…
    パーマリンクの設定については書き込み前に試しましたが、変わりませんでした。でもこちらもtaxonomy.phpに何も入れていないからかと思います…。

    キャンセル

0

taxonomy.phpのみ使用するという点では解決していませんが、
とりあえずというところで自己解決しましたので書き込ませていただきます。
taxonomy-hoge.php のテンプレートを別途作成し下記の通りにいたしました。
閲覧・ご回答いただきましてありがとうございました。

<?php
$type = get_query_var('hoge');
$args = array(
  'post_type' => array('hogetype'),
  'tax_query' => array(
  'relation' => 'OR',
    array(
      'taxonomy' => 'hoge',
      'field' => 'slug',
      'terms' => $type,
    ),
  ),
  'paged' => $paged,
  'posts_per_page' => '-1'
); ?>

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

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

同じタグがついた質問を見る