【WordPressでサイトのホームURL以下の部分だけを出力させたい】「str_replace」を使って出力前に加工します

WordPressのテンプレートタグとPHP関数を使って特定の文字列を出力させます。

要らない部分を削除する

まず、特定の文字列を置換・削除するPHP関数「str_replace」を使います。

str_replace (検索文字, 置換後の文字列, 元の文字列)

下に例を書きましたので、ご覧ください。

例:「https://www.imamura.biz/blog/sns/facebook/4341

<?php
$home_url = home_url(); //ホームのURLを取得する
$permalink = get_permalink(); //記事のURLを取得
$data = str_replace( $home_url , "" , $permalink ); //いらないホームのURLを削除する
echo $data; //出力する
?>

出力結果はこちら

/sns/facebook/4341

・・・要らない部分

「https://www.imamura.biz/blog」

を削除して取得できました。

「bloginfo(‘url’)」「the_permalink()」は使わないこと

ブログのURLの取得は「bloginfo(‘url’)」

記事のURLの取得は「the_permalink()」

を使うと、そのまま出力されてしまいます。ですので、一度出力する前に加工したい時には、

「home_url()」

「get_permalink()」

を使用します。

まとめ

今回のような

  • 特定の文字列のみ出力したい
  • 出力する前にデータを加工したい

そんな場合には必須の方法ですので、覚えておいても損はないと思います。

また、今回例に挙げた「home_url()」「get_permalink()」以外にも、まだまだテンプレートタグは用意されていますので、くわしくはテンプレートタグ – WordPress Codex 日本語版も参考にすると理解が深まります。

著者:bouya Imamura