コンテンツのURLからサイトURL以外を取得する方法

公開日:2024(令和6)年3月3日/最終更新日:

WordPressのカスタマイズ方法についての画像

【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています



例えばこのページのURL「https://habone.biz/9104」から、ホームURLを除いた「9104」だけを取得する簡単な方法です。

以下がコード例です。

本ページで掲載しているコードは、以下に了承した上で使用ください

  • コードは商用・非商用問わず自由に使っていただいて構いませんが、コード追加による不具合やトラブルが発生しても当方では一切責任を負いません
  • コードは有効化しているテーマのfunctions.php、style.cssなどへ追加することで機能します。それらのファイルへの変更を行うことに不安のある方は使用しないでください
  • コードは本ページの公開日時点で私の環境において動作したものです。WordPressバージョン他環境の違いによって動作しないことがあります
  • コードは、セキュリティ、コードの正確さなどにおいて完全なものではありません。中には紹介するコードを簡略化するために省略している部分があるものもありますので、ご自身でコードを十分に検証し、必要な部分の編集を行った上で使用するようにしてください
  • 掲載しているのは参考コードです。自身の環境に合わせるための編集はご自身で対応いただく必要があります(コメント欄等から質問いただいても基本回答は致しません)
  • 掲載しているコードの転載を禁じます(SNSで紹介いただいたり、本ページへのリンクを張っていただくことは大歓迎です)

テスト時にはどこかに出力したいと思うでしょうから、以下のコードではページの最下部に表示させる(wp_footerへフックさせる)ようにしていますので、利用方法に従ってコードは書き換えてください。

function pwcn_get_permalink_footer(){
	//各ページのURLとホームのURLを取得
	$permalink = get_permalink();
	$home_url = home_url();

	//ホームのURLと直後の「/」を削除して$dataへ格納
		$data = str_replace( $home_url.'/' , "" , $permalink ); 

	//末尾に「/」があれば除去して$outputへ格納
	if(substr( $data , -1) == '/'){
		$output = str_replace( '/' , '' , $data );
	}else{
		$output = $data;
	}

	//出力する
	echo $output;
}
add_action('wp_footer','pwcn_get_permalink_footer');

コード中にコメントいっぱい入れているので分かるとは思いますが、一応以下のようなことをしています。

  1. ページの完全なURLと省く対象となるホームURLを取得
  2. str_replaceを使って、ホームURLとその直後の「/」を省いて一旦変数へ格納
  3. 2で取得した文字列の末尾に「/」があれば省いて変数へ格納
  4. 3をechoで出力(wp_footerでページ末尾へ出力)

書いたら簡単なのですが、うーんとなる場合もあるかも知れないので公開しておきます。

応用すると、これを投稿一覧の列として表示させ、長いURLになってしまっているものがないか?等の確認ができますね。



Lolipop ServerMoshimo Ad x-serverMoshimo Ad

WordPressのカスタマイズ方法についての画像
画面に表示させずにデバッグ情報(エラーや警告の情報)を取得する方法