🐣
[WP] リライトルールの備忘録
作成日:
2022/02/14
1
いつも忘れるリライトルールの追加や変更。。。
デバッグ
登録されているリライトルールを確認
<pre><?php var_dump( get_option('rewrite_rules') ); ?></pre>
ページごとにデバッグするプラグイン: Debug Bar
リライトルールの追加
例) ドメイン/カスタム投稿名/投稿ID
function addRewriteRules($rules){
$new_rule = array(
'information/([0-9]+)/?$' => 'index.php?post_type=information&p=$matches[1]',
'pressrelease/([0-9]+)/?$' => 'index.php?post_type=pressrelease&p=$matches[1]',
);
//ルール配列に結合
return $new_rule + $rules;
}
add_filter('rewrite_rules_array', 'addRewriteRules');
リライトルールの書き換え
function add_date_base($rewrite_rules){
$r = array();
while(list ($key, $val) = each($rewrite_rules)) {
$r[str_replace('post/', 'date/', $key)] = $val;
}
return $r;
}
add_filter('date_rewrite_rules', 'add_date_base');
(参考:https://penguinlab.jp/blog/post/1164)
テンプレートで吐き出されるリンク先を変更
下記は post_type/投稿id のURLに変えてる。
function generateCustomPostLink($link, $post){
if($post->post_type === 'information'){
return home_url('/information/'.$post->ID);
} elseif($post->post_type === 'pressrelease'){
return home_url('/pressrelease/'.$post->ID);
} else {
return $link;
}
}
add_filter('post_type_link', 'generateCustomPostLink', 1, 2);
リンク関連のフィルターフック
http://wpdocs.osdn.jp/プラグイン_API/フィルターフック一覧#.E3.83.AA.E3.83.B3.E3.82.AF.E9.96.A2.E9.80.A3.E3.81.AE.E3.83.95.E3.82.A3.E3.83.AB.E3.82.BF.E3.83.BC
例えば、カスタム投稿のパーマリンクを変えたいなら post_type_link にフック、
年別アーカイブ関連なら year_link にフック、など。
制作会社でフロントのコーディングやWordpressのテーマ開発をしてます。
本命はJavascriptです😋
目指せフロントエンドエンジニア👊