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

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

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

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1479閲覧

WordPress カスタム投稿 リンクが想定通りにならない

nekora

総合スコア501

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/07/14 23:05

編集2021/07/16 01:11

記述途中で送信されてしまったので。編集・追記しました。現状が本来の質問文です。

カスタム投稿のURLが想定通りにならない

いつも、こちらではお世話になっております。自分でもお返しをといくつかの質問に回答したりしているのですが、
今回どうしても当方の知識不足で解決できない問題に直面しました。

概要

現在障害者の支援事例のページ作成を請け負っているのですが、
register_post_typeしてカテゴリー用にregister_taxonomy、タグ用にregister_taxonomyしています。

パーマリンクの設定も行っているのですが、想定通りのURLでは表示されず。カテゴリー名の前にregister_taxonomyに指定したカテゴリーのslugを書いてそのあとにslugの値のカテゴリー名を書くと表示されます。

https://foo.ber.com/カテゴリー名/タグ名/記事タイトル

と、なるようにしたいのですが、3日調べまくって悩んでいるのですが、もうお手上げで、こちらの先達の皆様にご教授いただければ幸いです。

参考にしたページのURL

http://mtrad-blog.com/2020/02/28/post-789/
https://qiita.com/TakumiIt0/items/e7ac318c45565d762961
https://www.webdesignleaves.com/pr/wp/wp_custom_post_type.html

上手くいってない現在のコード

カスタム投稿を定義しているphpファイル。function.phpにincludeしてあります。

php

1 2<?php 3 4// 参考サイト:http://mtrad-blog.com/2020/02/28/post-789/ 5//      :https://qiita.com/TakumiIt0/items/e7ac318c45565d762961 6//      :https://www.webdesignleaves.com/pr/wp/wp_custom_post_type.html 7 8/* カスタム投稿タイプ */ 9//支援事例ページに関する関数です 10add_action( 'init', 'create_cos_support_beta' ); 11 12function create_cos_support_beta() { 13 register_post_type( 14 'support2', /* post-type */ //カスタム投稿タイプ名 15 array( 16 'labels' => array( 17 'name' => __( '支援事例β' ), //表示するタイトル 18 'singular_name' => __( '支援事例β' ) 19 ), 20 21 // その他の設定 22 'public' => true, //一般公開 23 'show_ui' => true, //管理画面に表示 24 'query_var' => true,//管理画面で記事一覧を表示 25 'has_archive' => true, /* アーカイブページを持つ */ 26 'rewrite' => array('slug' => 'support2', 'with_front' => false), //記事URLの設定 27 'taxonomies' => array('support2-cat', 'support2-tag'), 28 ) 29 ); 30 31 register_taxonomy( 32 'support2-cat', /* タクソノミーの名前(カテゴリーの名前) */ 33 'support2', 34 array( 35 'hierarchical' => true, //カテゴリータイプの指定 36 'update_count_callback' => '_update_post_term_count', 37 //ダッシュボードに表示させる名前 38 'label' => '支援種別', 39 'singular_label' => '支援種別', 40 'labels' => array( 41 'all_items' => '支援種別カテゴリ一覧', 42 'add_new_item' => '支援種別カテゴリを追加' 43 ), 44 'public' => true, //一般公開 45 'rewrite' => array('slug' => 'support2-cat', 'with_front' => false, 'hierarchical' => true, 'ep_mask' => true), //記事URLの設定 46 'has_archive' => true, /* アーカイブページを持つ */ 47 'show_ui' => true, //管理画面に表示 48 'supports' => array( //記事編集画面に表示する項目を配列で指定することができる 49 'title', //タイトル 50 'editor', //本文の編集機能 51 'revisions' //リビジョンを保存 52 ), 53 ) 54 ); 55 56 register_taxonomy( 57 'support2-tag', /* タクソノミーの名前(タグの名前) */ 58 'support2', 59 array( 60 'hierarchical' => false, //タグタイプの指定(階層をもたない) 61 'update_count_callback' => '_update_post_term_count', 62 //ダッシュボードに表示させる名前 63 'label' => '症病名', 64 'public' => true, //一般公開 65 'rewrite' => array('slug' => 'support2-tag', 'with_front' => false, 'hierarchical' => true, 'ep_mask' => true), //記事URLの設定 66 'has_archive' => true, /* アーカイブページを持つ */ 67 'show_ui' => true, //管理画面に表示 68 ) 69 ); 70} 71?>

カスタムパーマリンクの設定
カスタムパーマリンクの設定
カテゴリーの設定
カテゴリーの設定
タグの設定
タグの設定

現在の状況

http://foo.bar.net/mental-illness/ → 404エラーになる
http://foo.bar.net/support2-cat/mental-illness/ → ●ページが表示される
http://foo.bar.net/mental-illness/うつ病/ → 404エラーになる
http://foo.bar.net/support2-cat/mental-illness/support2-tag/うつ病/ → 404エラーになる
http://foo.bar.net/うつ病/ → 404エラーになる
http://foo.bar.net/support2-tag/うつ病/ → ●ページが表示される

成し遂げたい事

http://foo.bar.net/mental-illness/
http://foo.bar.net/mental-illness/うつ病/

上記の時のみページが表示されて、他はエラーになるようにしたい。

用意してあるテンプレートファイル

archive-support2.php
single-support2.php
taxonomy-support2.php
taxonomy-support2-cat.php
taxonomy-support2-tag.php

何か不足情報などありましたらご指摘ください。すぐに対応します。
なにとぞ、諸先輩方、よろしくお願いしますm(_ _)m

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

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

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

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

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

guest

回答1

0

自己解決

自己解決しました

https://www.webdesignleaves.com/pr/wp/wp_permalink_rewrite.html
こちらのリンクを参考にして

カスタム投稿を定義しているphpファイル。function.phpにincludeしてあります。

php

1<?php 2// auther Isamu Takata 3 4// 参考サイト:http://mtrad-blog.com/2020/02/28/post-789/ 5//      :https://qiita.com/TakumiIt0/items/e7ac318c45565d762961 6//      :https://www.webdesignleaves.com/pr/wp/wp_custom_post_type.html 7//      :https://www.webdesignleaves.com/pr/wp/wp_permalink_rewrite.html 8 9/* カスタム投稿タイプ */ 10//支援事例ページに関する関数です 11add_action( 'init', 'create_cos_support_beta' ); 12 13function create_cos_support_beta() { 14 register_post_type( 15 'support2', /* post-type */ //カスタム投稿タイプ名 16 array( 17 'labels' => array( 18 'name' => __( '支援事例β' ), //表示するタイトル 19 'singular_name' => __( '支援事例β' ) 20 ), 21 22 // その他の設定 23 'public' => true, //一般公開 24 'show_ui' => true, //管理画面に表示 25 'query_var' => true,//管理画面で記事一覧を表示 26 'has_archive' => true, /* アーカイブページを持つ */ 27 'rewrite' => array('slug' => 'support2', 'with_front' => false), //記事URLの設定 28 'taxonomies' => array('support2-cat', 'support2-tag'), 29 ) 30 ); 31 32 register_taxonomy( 33 'support2-cat', /* タクソノミーの名前(カテゴリーの名前) */ 34 'support2', 35 array( 36 'hierarchical' => true, //カテゴリータイプの指定 37 'update_count_callback' => '_update_post_term_count', 38 //ダッシュボードに表示させる名前 39 'label' => '支援種別', 40 'singular_label' => '支援種別', 41 'labels' => array( 42 'all_items' => '支援種別カテゴリ一覧', 43 'add_new_item' => '支援種別カテゴリを追加' 44 ), 45 'public' => true, //一般公開 46 'rewrite' => array('slug' => 'support2/support2-cat/', 'with_front' => false), //記事URLの設定 47 'has_archive' => true, /* アーカイブページを持つ */ 48 'show_ui' => true, //管理画面に表示 49 'supports' => array( //記事編集画面に表示する項目を配列で指定することができる 50 'title', //タイトル 51 'editor', //本文の編集機能 52 'revisions' //リビジョンを保存 53 ), 54 ) 55 ); 56 57 register_taxonomy( 58 'support2-tag', /* タクソノミーの名前(タグの名前) */ 59 'support2', 60 array( 61 'hierarchical' => false, //タグタイプの指定(階層をもたない) 62 'update_count_callback' => '_update_post_term_count', 63 //ダッシュボードに表示させる名前 64 'label' => '症病名', 65 'public' => true, //一般公開 66 'rewrite' => array('slug' => 'support2/support2-cat/support2-tag/', 'with_front' => false), //記事URLの設定 67 'has_archive' => true, /* アーカイブページを持つ */ 68 'show_ui' => true, //管理画面に表示 69 ) 70 ); 71} 72?>

さらに、function.phpに以下を追記

php

1// URLの書き換えルールを追加する 2add_rewrite_rule('^support2/([^/]+)/?$', 'index.php?support2-cat=$matches[1]', 'top'); 3add_rewrite_rule('^support2/([^/]+)/([ぁ-んァ-ヶ一-龠々]+)/?$', 'index.php?support2-tag=$matches[2]', 'top');

これで、希望通り、

http://foo.bar.net/mental-illness/
http://foo.bar.net/mental-illness/うつ病/

上記の時のみページが表示されて、他はエラーになるようになりました。

投稿2021/07/18 21:17

nekora

総合スコア501

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問