メシのタネ

Webプログラミング 備忘録

  • AWS移行でコケ中

    現在このWebサイトが稼働している、このサーバーのMySQLをマスターとし、AWS上のRDSをスレーブとして、データ移行をしようと思ったが、バイナリロギングの取得が上手くいかない。多分の手順VPSのDBでスレーブ用のユーザ作成バイナリロギングを行うスレーブ側RDSにマスターのDUM[...]

    続きを読む
  • AWS ソリューションアーキテクト アソシエイトに合格しました。

    実は、今日までIT無資格でした。ええ歳だし、そろそろなんか資格取っておくかーと考えだしたので、取って嬉しい資格を取ろうと思ってたところ、AWSの資格あったなーと思って、調べてみたら、みんな14日で受かる!とか言ってるので、じゃあというこで、試験日14日後とかにして、試験の予約入れたのが地獄の始まり[...]

    続きを読む
  • DOMをPHPで操作できたらいいよね

    そうだよね。そう思うよね。JavaScriptでやると、画面がガタついたりするもんね。そうならないようにする方法もあるかもしれないけど、僕はできませんので、サーバー側でなんとかできたらええなぁと思って挑戦したけど、できませんでしたよ。PHP標準でHTMLをDOMにできるらしい今、技[...]

    続きを読む
  • 設計書ってなんで書くの?

    設計書をなぜ書くのかから始めてかれこれ3年近くこの禅問答をやっているわけですが、いまだに答えは出ません。ただ、その禅問答をやる中で設計書に対する取り組み方は大きく変わったので、その一部でも書いていきたい。基本設計はとにもかくにも必要だと思う設計書はいらぬ!という話をよく聞くし、自分[...]

    続きを読む
  • 書ききってやる。

    久々に書いてみる。久々に文章を書くということをやってみようと思う。伝える作業を観察したいと思ったからそうしたいと考えた。情緒的な文章は基本的にゴミ箱にぽいしてきましたが、情緒的なのも自分だと思う。「文章をかくという作業は、とりもなおさず自分と自分をとりまく事物との距離を確認すること[...]

    続きを読む

【WordPress】指定アドレスと表示アドレスを等価にする方法

negienginegi

例えば。
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にすると一番下になります。
何のかは後で言います。

<br />
functions.php側</p>
<p>function callb_rule()<br />
{<br />
    global $wp_rewrite;</p>
<p>     add_rewrite_rule(<br />
          'ankounabe/?([0-9]{1,})/?$',<br />
          'index.php','top'<br />
     );<br />
     $wp_rewrite-&gt;flush_rules();<br />
}<br />
add_action('init','callb_rule',0);<br />

flush_rulesメソッド呼んでますが

flush_rules関数はとても遅いので、実装するときにはすべてのページで実行されるinitフィルターで呼び出さないようにしてください。
CODEXより

ということなので、パーマリンクの更新を使いましょう。
テストしてていちいち面倒臭い人はflush_rules使いましょうそうしましょう。

アドレスが等価になったか確認する

とりあえず、リライトルールの登録が終わってるかを確認しましょう。

<br />
&lt;pre&gt;<br />
&lt;?php var_dump($wp_rewrite-&gt;wp_rewrite_rules()); ?&gt;<br />
&lt;/pre&gt;<br />

気になる人は$wp_rewriteみて見るといいと思います。
へーってなりますよ。僕はなるだけでしたけど。
rewriterule

add_rewrite_ruleの第二引数をTOPにしたので上にルール追加されてます。
これは確認なので、このコードは消します。

それを消してから、
root/ankounabe/2/でアクセスしてみてください。
数字部分は数字なら何でもよいです。
root/index.php
が表示されているはずです・・・・。

信じるか信じないかは、あなた次第です。

関連記事

コメントをお待ちしております