WordPressのショートコードをつかってタイトル付きリンクを自動取得する方法
「もう手動でリンクやリンクタイトルを編集しなくてすむとしたら...」

記事タイトルを変えたときに記事リンクのタイトルも自動で変更されるようになる方法がある。さっそくタイトルを自動変更する方法を教えていこう。

タイトル付きのリンクを自動で作る方法

function automatically_link_and_title( $atts ) {
    $content_atts = shortcode_atts( array(
        'id' => '',
    ), $atts );

    $href_link = get_the_permalink( $content_atts['id'] );
    $title = get_the_title( $content_atts['id'] );
    $link = "" . $title . "";

    return $link;
}
add_shortcode( 'link_auto', 'automatically_link_and_title' );

基本的に上記のコードをfunction.phpのなかに入れるだけで準備はOK。つぎでコードの解説をしていこう。

コードの解説

1. 配列を設定していく(shortcodeの引数になるところ)

/* $content_atts変数にショートコードを作ったときに設定したい項目を作成
   shortcode_atts()はWordPressであらかじめ用意されてるもの */
$content_atts = shortcode_atts( array(
    'id' => '',
), $atts );

今回は記事のIDを使うので'id'のみの設定。中身が空白なのは自由に設定できるようにするため。

2. 取得したidを引数に入れてidと一致した記事のタイトル、リンクを自動に取得

// idと一致したURLリンクを取得。get_the_permalink()はWordPressで用意されてるもの
$href_link = get_the_permalink( $content_atts['id'] );

// idと一致した記事タイトルを取得。get_the_title()はWordPressで用意されてるもの
$title = get_the_title( $content_atts['id'] );

// aタグをつくり、リンクとタイトルの場所に$href_linkと$titleをいれる
$link = "" . $title . "";

return $link;

idを基準に$titleで投稿タイトルを取得するため、投稿タイトルを変えても自動でリンクのタイトルが変わるようなるから気軽に投稿タイトルを変更可能。

3. エディタで使えるようにショートコードを登録する

add_shortcode( 'link_auto', 'automatically_link_and_title' );

add_shortcode(ショートコード名, function名)でOK。エディタではショートコード名を使っていく。

作ったショートコードの使いかた

クラシックエディタ内でつぎを入れればOK。

[link_auto id=記事のid]

記事idの取得方法は、WordPress内の投稿一覧からidを取得したい記事タイトルにカーソルを動かすと、左下にURLが表示される。

URL内の「post=数字」の数字だけを取り出せばOK。

まとめ: ショートコードをつかってWordPress管理をラクに

紹介したショートコードをつかえば、何十記事のタイトル変更してもURLを変えてしまっても一瞬で変更される。

記事が増えるほどリンクの管理はめんどくさいから、記事がすくなくても使ってみたほうがいい。WordPress管理をラクにして記事に集中していこう。