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

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

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

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

Q&A

0回答

606閲覧

【WordPress】カスタム投稿のアーカイブとタクソノミーのテンプレートファイル

true_colors_20

総合スコア25

WordPress

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

0グッド

0クリップ

投稿2021/06/23 14:53

前提・実現したいこと

カスタム投稿をfunctions.phpで設定しています。

カスタム投稿のスラッグ:article
カスタム投稿のタクソノミーのスラッグ:article-cat

上記が前提条件で、テンプレートとなるファイルを、
/article/ならarchive-article.php
/article/ターム名/ならtaxonomy-article-cat.php
にしたいです。

発生している問題・エラーメッセージ

/article/でアクセスすると、ちゃんとarchive-article.phpが読み込まれます。
ですが、/article/ターム名/でアクセスすると、taxonomy-article-cat.phpではなくarchive-article.phpのファイルがサイト上で表示されてしまいます。

どうすればいいでしょうか?

気になる点

functions.phpでURLをリライトしています。
これがなにかいけないのでしょうか?

カスタム投稿の記事詳細を、/article/タクソノミーのターム名/記事ID/にしています。

(functions.phpの一部抜粋)

/** * URLリライト */ function my_custom_post_rewrite() { global $wp_rewrite; // * ↓ ↓ ↓ 複数ある場合はこの単位で複製する ↓ ↓ ↓ * $wp_rewrite->add_rewrite_tag('%article%', '(article)','post_type='); $wp_rewrite->add_permastruct('article', '/%article%/%article-cat%/%post_id%/', false); // * ↑ ↑ ↑ 複数ある場合はこの単位で複製する ↑ ↑ ↑ * } add_action('init', 'my_custom_post_rewrite'); function my_custom_posttype_permalink($post_link, $id = 0, $leavename) { global $wp_rewrite; $post_delivery = get_post($id); $post = $post_delivery; if(is_wp_error( $post )){ return $post; } // * ↓ ↓ ↓ 複数ある場合はこの単位で複製する ↓ ↓ ↓ * if('article' === $post->post_type){ $newlink = $wp_rewrite->get_extra_permastruct($post->post_type); $newlink = str_replace('%article%', $post->post_type, $newlink); $get_term = get_the_terms($post->ID, 'article-cat'); $term_name = array_shift($get_term); $term_slug = $term_name->slug; $newlink = str_replace('%article-cat%', $term_slug, $newlink); $newlink = str_replace('%post_id%', $post->ID, $newlink); $newlink = home_url(user_trailingslashit($newlink)); return $newlink; } // * ↑ ↑ ↑ 複数ある場合はこの単位で複製する ↑ ↑ ↑ * return $post_link; } add_filter('post_type_link', 'my_custom_posttype_permalink', 1, 3);

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

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

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

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

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

yuki84web

2021/06/27 09:34

スラッグをarticlecatにしてテンプレートファイル名をtaxonomy-articlecat.phpみたいにするとどうなりますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問