見出し画像

【WordPress】プラグイン無しで記事idから記事のURLとタイトルを自動で取得する【PHP】

みなさんこんにちは。かたぴ( @katapi1103 )です。

ブログを書いていて、ある記事に自分のブログの他の記事のリンクを関連記事として張りたいと思ったことはありませんか?
例えば以下のような具合に。

ある記事に興味を持ってくれた読者は、その記事と関連した記事も読んでくれる可能性が高いです。

しかし、関連記事のURLとタイトルを毎回手動で取得していたら大変です。
なぜなら、関連記事のURLとタイトルをコピー&ペーストする手間がかかるだけでなく、関連記事のURLやタイトルを変更してしまうと、関連記事を貼り付けた記事でもURLやタイトルの変更が必要になってしまうからです。

そこで、この記事で紹介する方法を使えばそのような面倒なことをしなくても良くなります。

この記事でできるようになること

記事idだけで記事のURLとタイトルを自動で取得できる
テキストだけの関連記事のリンク(このnote冒頭の画像のように)を任意の記事に表示できる
◆関連記事のURLとタイトルが変更された場合、自動で変更が反映される

対象者

◆WordPressでブログを書いている人
◆テキストだけの関連記事のリンクをある記事に貼りたい人
◆毎回、関連記事のURLとタイトルをコピーして貼り付けているのが面倒な人
◆関連記事のURLやタイトルを変更したときに、関連記事を紹介している記事で変更し忘れてしまう人
◆PHPのコーディングは無理!という人
◆PHPのコーディングするのが面倒!という人

注意事項

◆この記事ではWordPressのテーマに含まれるfunction.phpを編集します。編集前にバックアップを取ることをオススメします。
◆本対応により生じた、いかなる損害においても責任は負いかねます。
◆導入の個別のサポートはしておりません。

1. function.phpに書き込む

Wordpressの管理画面を開いたら、メニューから
外観>テーマの編集
を選択しましょう。


画面の右側からfunction.php(テーマのための関数)を選択し、以下のソースコードをエディター内に貼り付けましょう。

//記事idからアンカーリンクとタイトルを自動取得
add_shortcode('kanrens', 'get_simple_anker_link');
function get_simple_anker_link($atts) {
	$output = '';
	$id = isset($atts['id']) ? esc_attr($atts['id']) : null;
	if($id) {
		$url = esc_url(get_permalink($id)); // URL
   	$title = esc_attr(get_the_title($id));
   	if($url && $title) {
			$output .= <<<EOF
			<a href="{$url}">{$title}</a>
EOF;
   	} else {
			$output = '記事idに該当する記事が存在しません';
		}
 	} else {
		$output = '記事idを入力してください';
 	}
	return $output;
}


2. 表示したい関連記事のidを調べる

投稿画面を開き、表示したい関連記事のidを調べましょう。

GoogleChromeの場合、記事のタイトルにマウスカーソルを合わせると画面左下にURLが表示されます。


Safariの場合、記事の編集画面を開いたら、アドレスバーをクリックすれば記事idが確認できます。


3. 関連記事を挿入する

ここまでやれば、あとは関連記事を挿入したいところに以下のショートコード(※)を書き込めばOK!

[kanrens id="ここに記事idを入力"]

「ここに記事idを入力」の欄に、先ほど調べた記事idを半角数字で書き込んでください。

※ショートコードを変更したい場合

デフォルトではkanrensとしていますので、必要であれば書き換えてください。

おわりに

説明は以上になります。
関連記事を紹介してブログの回遊率を高め、ブログのファンを増やしていきましょう!(^o^)

この記事が気に入っていただけたらスキまたはSNSで紹介いただけると嬉しいです😆

この記事が気に入ったらサポートをしてみませんか?