例えば。
root/ankounabe/2/ = root/index.php
みたいにする方法があります。
アドレスになるのは
root/ankounabe/2/
だけど実質表示されているのは
root/index.php
慣れてくると
/wp/ankounabe/2/ = /wp/index.php?hoge=$matches[1]
みたいなこの2を正規表現で書いておけば
変数にして受け取れるとか書いてあるんですけど、
できまへんでした。
暇があれば誰か/wp/ankounabe/2/ = /wp/index.php?hoge=$matches[1] これで$hogeの中に2が出る方法教えて下さい。
initのタイミングで、URLを登録する
別にinitのタイミングじゃなくても良いんでしょうけど、
僕はとりあえずそう書きました。
ほんで登録したいURLをadd_rewrite_ruleの第一引数として
渡してやります。topにすると、一番上、bottomにすると一番下になります。
何のかは後で言います。
functions.php側 function callb_rule() { global $wp_rewrite; add_rewrite_rule( 'ankounabe/?([0-9]{1,})/?$', 'index.php','top' ); $wp_rewrite->flush_rules(); } add_action('init','callb_rule',0);
flush_rulesメソッド呼んでますが
flush_rules関数はとても遅いので、実装するときにはすべてのページで実行されるinitフィルターで呼び出さないようにしてください。
CODEXより
ということなので、パーマリンクの更新を使いましょう。
テストしてていちいち面倒臭い人はflush_rules使いましょうそうしましょう。
アドレスが等価になったか確認する
とりあえず、リライトルールの登録が終わってるかを確認しましょう。
<pre> <?php var_dump($wp_rewrite->wp_rewrite_rules()); ?> </pre>
気になる人は$wp_rewriteみて見るといいと思います。
へーってなりますよ。僕はなるだけでしたけど。
add_rewrite_ruleの第二引数をTOPにしたので上にルール追加されてます。
これは確認なので、このコードは消します。
それを消してから、
root/ankounabe/2/でアクセスしてみてください。
数字部分は数字なら何でもよいです。
root/index.php
が表示されているはずです・・・・。
信じるか信じないかは、あなた次第です。