回答編集履歴

1

返信

2017/12/18 11:50

投稿

KazuhiroHatano
KazuhiroHatano

スコア7804

test CHANGED
@@ -41,3 +41,75 @@
41
41
  template_includeフィルタはコメントの種類ごとに表示内容が全然違うので
42
42
 
43
43
  テンプレートファイル自体を切り替えたいとかいう場合に使います
44
+
45
+
46
+
47
+ ---
48
+
49
+
50
+
51
+ add_rewrite_rule();は**正規表現**による
52
+
53
+ URLを書き換え設定を追加します
54
+
55
+ 正規表現を知らないと道のりはさらに長く険しく…
56
+
57
+
58
+
59
+ ```php
60
+
61
+ add_rewrite_rule(
62
+
63
+ 'mypost_type/([0-9]+)/(\w+)/',
64
+
65
+ 'index.php?post_type=mypost_type&p=$matches[1]&page_type=$matches[2]',
66
+
67
+ 'top'
68
+
69
+ );
70
+
71
+ ```
72
+
73
+
74
+
75
+ これで、例えば
76
+
77
+ http://example.com/mypost_type/63/hoge/
78
+
79
+
80
+
81
+ http://example.com/index.php?post_type=mypost_type&p=63&page_type=hoge
82
+
83
+ にリダイレクトされるようになります
84
+
85
+
86
+
87
+ 第3引数のtopは書き換えルールの優先順位を先頭にってことです
88
+
89
+ wordpressの固定ページとかのリライトルールがほとんどのパターンを引っ掛けてしまうので
90
+
91
+ ここは割とtop以外の選択肢がないです
92
+
93
+
94
+
95
+ add_rewrite_tag()はadd_permastruct()とセットで使うもので
96
+
97
+ add_rewrite_rule()に渡す引数の生成の設定をする関数です
98
+
99
+
100
+
101
+ 管理画面のパーマリンク設定でカスタムURLの設定にも使いたいとか
102
+
103
+ いろんなパーマリンクで同じ書き換えルールのパーツを使うというときに使います
104
+
105
+
106
+
107
+ 他のカスタム投稿タイプやページタイプでも同様に子ページを作れるようにしときたい
108
+
109
+ とかいうような場合はadd_rewrite_tag()+add_permastruct()でやっておくのもいいです
110
+
111
+
112
+
113
+ 特定のカスタム投稿でしか使わないとかなら
114
+
115
+ add_rewrite_rule()でやっといた方が手間が少ないです