Shortcodeでタイトル付きリンクを自動取得する【手動リンク編集からの解放】

今回はShortcodeでタイトル付きのリンクを自動で変更できるfunctionコードを紹介していきます。

もう手動でリンクやリンクタイトルを編集しなくてすむのでぜひやっていきましょう。

タイトル付きのリンクを自動で作るfunctions.phpにコード

/* Make short code */
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' );

コードの解説

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

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

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

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

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

    return $link;

aタグの中に必要な情報をいれてリンクとタイトルを取得していきましょう。

2. エディタで使えるようにshortcodeを登録する

add_shortcode( 'link_auto', 'automatically_link_and_title' );

add_shortcode(ショートコードの名前(なんでもOK), function名)でOK。エディタではショートコードの名前を使っていきます。

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

・クラシックエディタ内で…
[link_auto id=記事のid]を入れれば完成。

ただ毎回ショートコードを入力するのはめんどくさい。そこでWordPress Classic editorボタンタグをカスタマイズ【Quicktags】でQuicktagsというものを作成。

QTags.addButtonの一番下に次のコードを書いていく

QTags.addButton( 'autolink', 'autolink', '[link_auto id=]', '' );

これでautolinkというボタンがクラシックエディタに出てくるのでボタン1つで[link_auto id=]が出力。あとはidを入れるだけ。

・idの取得方法は…
WordPress内の投稿一覧から、idを取得したい記事タイトルにカーソルを動かすと、左下にURLが表示される。URL内のpost=数字の数字だけを取り出せばOK。

今回はここまで。

・他のWordPressツール
WordPressからいらない項目を削除する【サイトスピードUP】
メタディスクリプションを設置する【functions.php】