Personal WP Customization Notes (PWCN)

WordPressで実際に行ったカスタマイズの記録、発生した問題への対処時のメモ、ブロックテーマのカスタマイズなど

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

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

以下がコード例です。

テスト時にはどこかに出力したいと思うでしょうから、以下のコードではページの最下部に表示させる(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になってしまっているものがないか?等の確認ができますね。

コメントを残す

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

※リンクやURLの挿入されているコメントは無視します