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

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

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

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

Q&A

0回答

391閲覧

カスタム投稿タイプのタクソノミー一覧のURLを固定ページ配下にしたい

kiriyama_hiro

総合スコア2

WordPress

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

0グッド

0クリップ

投稿2021/03/03 02:32

編集2021/03/03 02:41

現在、wordpressでサイトを構築しています。
表題の通りカスタム投稿タイプのタクソノミー一覧のURLを任意の固定ページ配下にしたいのですが、分からず困っています。
関係あるか分かりませんが、ワードプレスのパーマリンクの設定はカスタム構造で以下のようにしています。

/%category%/%postname%/

詳細としては、日本語版のページのほか英語版もあるため、固定ページで英語版トップを表示させているため、URLは以下のようにしています。

txt

1https://localhost/sitename/en/

ここに英語版のインフォとニュースリリースを2つの記事を載せる為、「info-news-en」というカスタム投稿タイプで作成しました。
タクソノミーはinfo-news-en_catとしています。

その際、rwriteでURLを以下のように設定して望み通りにはできています。

txt

1rwrite : en/info-news-en 2URL:https://localhost/sitename/en/info-news-en

ソースコードは下記です。

php

1register_post_type('info-news-en', [ 2 'labels' => [ 3 'name' => 'Info / NewsRelease', 4 'singular_name' => 'info-news-en', 5 ], 6 'public' => true, 7 'has_archive' => true, 8 'menu_position' => 6, 9 'supports' => array( 10 'title', 11 'editor', 12 'thumbnail', 13 'revisions', 14 'excerpt', 15 'custom-fields', 16 ), 17 'show_in_rest' => true,18 'taxonomies' => array('info-news-en_cat'), 19 'rewrite' => array('slug' => 'en/info-news-en','with_front' => false) 20 ]); 21 22//カスタムタクソノミーの登録 23 register_taxonomy( 24 'info-news-en_cat', //カスタムタクソノミー名 25 'info-news-en', //このタクソノミーが使われる投稿タイプ 26 array( 27 'label' => 'カテゴリー', //カスタムタクソノミーのラベル 28 'labels' => array( 29 'popular_items' => 'よく使うカテゴリー', 30 'edit_item' => 'カテゴリーを編集', 31 'add_new_item' => 'カテゴリーを追加', 32 'search_items' => 'カテゴリーを検索', 33 ), 34 'public' => true, // 管理画面及びサイト上に公開 35 'description' => 'カテゴリーの説明文です。', //説明文 36 'hierarchical' => true, //カテゴリー形式 37 'show_in_rest' => true, //Gutenberg で表示 38 ) 39 ); 40

ここで管理画面上でタクソノミー親「info-news-en」として 子ターム「info-en」「news-release-en」を作成しました。
記事一覧は、「archive-info-news-en.php」として一覧を表示して、各ターム一覧をタブを設定して記事を切り替えたいと思い、以下の記述をして子ターム名とリンクを出力しています。

php

1<nav class="nav-cat"> 2 <ul class="nav-cat__list"> 3 <?php 4 $terms = get_terms('info-news-en_cat',array( 5 'child_of'=>12 親のタームの除く 6 ) 7 ); 8 foreach ( $terms as $term ) { 9 echo '<a href="'.get_term_link($term).'">'.$term->name.'</a>'; 10 } 11 ?> 12 </nav> 13

この状態でクリックすると以下のURLになってしまします。
「en」が消えて「info-news-en_cat」というカスタムタクソノミー名の後にターム名が表示されている状態です。

txt

1http://localhost/sitename/info-news-en_cat/news-release-en/

理想としては以下のようにしたいのです。

txt

1http://localhost/sitename/en/info-news-en/news-release-en/

どなたか方法が分かればご教授いただければと思っています。
よろしくお願いいたします。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問