メシのタネ

めしのたねになるIT情報配信サイト


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

,

  1. WordPress
  2. 【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にすると一番下になります。
何のかは後で言います。

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みて見るといいと思います。
へーってなりますよ。僕はなるだけでしたけど。
rewriterule

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

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

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


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.

若い頃、「仕事中にハマったこと」や「誰かに共有したい技術的な気づき」をアウトプットしたくてブログを始めましたが、勢い任せでよく分からない記事を大量生産し、あえなく飽きて終了。

改めて今、キャリア15年分の経験や知識が、これからITエンジニアを目指す方や、同じような課題で悩んでいる現役エンジニアの「メシのタネ」になるような記事を残したいと思っています。
※過去の記事は見ると精神が崩壊するため、そっとしておいてください。

🛠 経歴という名の珍道中:
文系Fラン → 広告営業 → Web営業 → 通信営業 → Web進行 → 出版 → Web媒体運用 → ソフトウェアハウス → SES → フリーランス

専門教育も受けず、転職歴も多数。履歴書はまるで時系列の事故記録のようですが、試行錯誤を重ね、なんとかエンジニアとして食べています。

このブログでは、そんな「履歴書クラッシャー型エンジニア」が送る、
名古屋一敷居の低い、実務に役立つ技術ブログを目指します。

Laravel
belongsToMany 実戦ガイド ── “withPivot”で追加カラムを守る 中間テーブル設計チェックリストNew!!
PHP
魔王と行く! / Interface / Polymorphism / Ontology 深淵ガイドNew!!
Laravel
Laravel 12、「コード 1 行も書き換えず未来へ」──静かな革命の手順書New!!
Laravel
LaravelのMiddlewareって意味あるの?仕組み・使いどころ・やらかしまで整理してみたNew!!
Laravel
ServiceProviderって何してるの?DIの背後で動いてるやつの正体
Laravel
LaravelのサービスコンテナとDI、「書いてるだけで動く」コードの正体