Blog

WordPressの投稿に別の投稿へのリンクをサムネイル付きで表示するショートコード

2018.03.10 2020.10.24 WordPress

内部リンクを張り巡らすことは、SEO対策の代表的な施策の一つです。

ブログ内のページとページをつなぐことで、ユーザーの回遊率を上げるだけでなく、検索エンジンのクローラーにサイト内のページをインデックスしてもらいやすくなります。

しかし、毎回記事タイトルをコピペして、URLコピペして…… ってやるのはめんどくさいですよね。

ということで今回は、投稿IDまたはスラッグを指定するだけでブログ内の記事にリンクできるショートコードの作り方をご紹介します。

↑こんな感じでサムネイル付きで表示できるので、ただリンクするよりも目立たせることができますよ。

投稿IDまたはスラッグからURLとサムネイル画像を取得する

完成したソースコードはこちら。functions.phpに追記してください。

functions.php
//記事内関連リンク
function inter_function ( $atts ) {
	extract( shortcode_atts( array(
		'id' => '', //投稿ID
		'slug' => '', //スラッグ
	), $atts ) );
	$my_url = home_url( '/' );
	if($slug){ //スラッグから投稿IDを取得する
		$id = url_to_postid($my_url. $slug);
	}
	$link = get_permalink($id); //投稿IDからURLを取得
	$title = get_the_title($id); //投稿IDから記事タイトルを取得
	$thumb = get_the_post_thumbnail_url( $id, 'square640' ); //投稿IDからサムネイルを取得
	if(!($thumb)) {
		$thumb = get_template_directory_uri().'/images/square640.png'; //サムネイル未設定の場合は代替画像を取得
	}
	return '<div class="internal"><a href="'. $link .'"' .'><div class="internal_thumb"><img src="'.$thumb.'"></div><div class="internal_desc"><div class="internal_label">関連記事</div><p class="internal_title">'. $title.'</p></div></a></div>';
}
add_shortcode('inter', 'inter_function');

投稿IDまたはスラッグから

  • URL
  • 記事タイトル
  • サムネイル画像

を取得し、生成したHTMLソースをショートコードで出力しています。

これで、投稿編集画面(ビジュアル・テキストどちらでも)にて、

[inter id="投稿ID"]

または

[inter slug="スラッグ"]

とで書くだけで、ブログ内の別の投稿にリンクすることがで切るようになりました。

まとめ

以上、WordPressの投稿に別の投稿へのリンクをサムネイル付きで表示するショートコードの作り方でした。

冒頭でも言いましたが、内部リンク構築はSEO的な意味でも非常に重要です。

何でもかんでもリンクすればいいという訳ではありませんが、過去の投稿で関連した内容のものがあれば積極的にリンクしていきましょう。