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

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

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

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

Q&A

解決済

1回答

1812閲覧

Wordpessパーマリンクと引数

landy77

総合スコア1614

WordPress

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

0グッド

0クリップ

投稿2016/06/04 02:37

フォーラムに投げたのですが返事もつかないのでこちらにも投げさせて頂きます。

カスタムパーマリンクで「/%post_id%」
タグベースのところを「tag」に設定しています。

現状tag.phpを設定してありまして
tag/タグ名
とURLを入力する事で「タグ名」が含まれる記事リストを表示する事自体は出来ています。
その他の投稿ページや固定ページは想定通りに問題なく動作していますが、お客様の希望で、キーワード(タグ)別一覧ページのURLをタグ名じゃなくてタグIDで表示してほしいと言われています。

そこを
tag/タグのID(term_id でしょうか)
でURLが開くようにしたいのです。
ただ実際は例として「tag/123」とURLを打つと404エラーになってしまいます。

私が思っていたのは「123」というタグ名(というかクエリというか)として認識されて、指定のタグはないという感じで開くのかな?と思っていたのですが、そもそも404になってしまうのでtag.phpの方ではなんとも出来ない感じになっています。
IDが取得できればIDからタグ名が取得できるので、一覧表示部分は今のtag.phpでいけると思っています。

フィルターフックとかでURLをリライトしてやらないといけないのかな?とまでは想像してみたのですが合ってるかも出来るのかもわからなくなってしまいました。

何かヒントをいただければと思います。
よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

リライトルールを追加するには、下記のようにすれば良いのでは、と思うのですが未テストなので動くかは不明。また、テンプレートがどのテンプレートで表示されるかも動かしてみないとわわかりません。

functions.php

PHP

1// リライトルールを追加 2function my_add_tag_id_rewrite_rule() { 3 add_rewrite_rule( 'tag/(\d+)/?$', 'index.php?tag_id=$matches[1]', 'top' ); 4} 5add_action( 'init', 'my_add_tag_id_rewrite_rule' ); 6 7// リライトルールに使った 'tag_id' がクエリとして動作するようにする 8function add_meta_query_vars( $public_query_vars ) { 9 $public_query_vars[] = 'tag_id'; 10 return $public_query_vars; 11} 12add_filter( 'query_vars', 'add_meta_query_vars' ); 13 14// 追加したクエリ 'tag_id' が存在した時の記事抽出 15function meta_search_query( $query ) { 16 if ( is_admin() || !$query->is_main_query() ) { return; } 17 if ( $query_val = $query->get( 'tag_id' ) ) { 18 $query->set( ' tag_id', $query_val ); 19 } 20} 21add_action( 'pre_get_posts', 'meta_search_query' );

【[WordPress]カスタムクエリの追加方法と一緒に追加しておきたい関数やフックなど | Wood-Roots.blog】
http://wood-roots.com/web制作/wordpress-web制作/カスタムクエリの追加方法と

【カスタム分類のページの URL を変更する | Web Design Leaves】
http://www.webdesignleaves.com/wp/wordpress/159/

投稿2016/06/04 17:46

kei344

総合スコア69398

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

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

landy77

2016/06/16 13:43

クエリを追加して、上記を試したところがうまく動かず、色々調べて最終的にルールをリセット(フラッシュ)してから上記の通りにしたところうまく動作できました! 初期ルールをフラッシュする事にたどり着くまでにかなりの時間がかかりましたがおかげさまで解決しました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問