SWELLカスタマイズ|コピペで実装!同じカテゴリーの記事へ飛ぶ「ランダムボタン」の作り方

  • URLをコピーしました!

「一生懸命書いた記事なのに、読者が1ページだけ読んで帰ってしまう…」 そんな風に、Googleアナリティクスの「直帰率」を見てため息をついていませんか?

こんにちは、元アナログ人間の竹久 夢藤(たけひさ むとう)です。 ブログ運営において、読者に「もう1記事読んでほしい」というのは永遠のテーマですよね。 通常は「人気記事ランキング」や「関連記事」を表示させますが、実はこれ、読者も見慣れてしまっていて、スルーされることが多いんです。

そこで提案したいのが、「記事ガチャ(ランダムボタン)」です。 こんなボタン。

「次に何が出るかわからない」 このワクワク感、人間は抗えません。スマホゲームのガチャがあんなに流行るのも、この心理があるからです。

今回は、大人気テーマ「SWELL」を使っている方向けに、プラグインなし、コピペだけで実装できる「運命のランダム記事ボタン」の作り方を伝授します。 プログラミング知識ゼロの私でもできたので、安心してくださいね。

目次

なぜ「人気記事」ではなく「ランダム」なのか?

「人気の記事を読んでもらった方がいいんじゃない?」と思いますよね? もちろんそれも正解です。でも、ブログの中には「いい記事なのに、検索順位が低くて誰にも読まれない記事」ってありませんか?

ランダムボタン(ガチャ)を設置すると、そんな「埋もれた名作」に光が当たるんです。 読者にとっても、「検索では出会えなかった記事」との偶然の出会い(セレンディピティと言います)は、あなたのブログのファンになる大きなきっかけになります。 まさに、ブログ内の宝探しです。

【3分で完了】SWELLに「記事ガチャ」を実装する手順

では、早速作っていきましょう。やることは「コードをコピーして、所定の場所に貼り付ける」。これだけです。

手順①:まずはバックアップ(命綱)

作業に入る前に、一つだけ約束してください。 今回触る functions.php というファイルは、いわばブログの「心臓部」です。一文字間違えると、画面が真っ白になることがあります。 必ず、バックアップを取るか、FTPソフトなどで修正できる準備をしてから行ってください。 (※自信がない方は、プラグイン「Code Snippets」を使って追加するのが一番安全でおすすめです!)

手順②:functions.phpに魔法のコードを追記

WordPressの管理画面から、以下の手順で進みます。

  1. 「外観」 ➡ 「テーマファイルエディター」をクリック。
  2. 右側のファイル一覧から 「テーマのための関数 (functions.php)」 を探してクリック。 ※必ず「SWELL CHILD(子テーマ)」が選択されていることを確認してくださいね!親テーマに書くと、アップデートで消えてしまいます。
  3. ファイルの一番下に、以下のコードをまるっとコピーして貼り付けます。

このコードは、SWELLの美しいボタンデザインをそのまま使いつつ、中身を「同じカテゴリーの記事からランダムに選ぶ」という動きに変える魔法の呪文です。

PHP

/* ------------------------------------------------------- */
/* 同一カテゴリーのランダム記事へ飛ぶボタン(最強版)
/* 使い方:[random_btn text="文字" color="red" style="shiny"]
/* ※colorは "red", "blue" 等のほか、"#ff0000" のようなコードもOK!
/* ------------------------------------------------------- */
add_shortcode('random_btn', function($atts) {
    if ( ! is_single() ) return '';

    // 設定(初期値を無難なものに変更)
    $atts = shortcode_atts(array(
        'text'  => '別の記事を読む', 
        'color' => 'red',   
        'style' => 'shiny', // normal, shiny, solid
    ), $atts);

    // カテゴリー記事取得処理
    $cats = get_the_category();
    if ( empty($cats) ) return '';
    $cat_ids = array();
    foreach($cats as $cat) $cat_ids[] = $cat->term_id;

    $args = array(
        'posts_per_page' => 1,
        'orderby'        => 'rand',
        'category__in'   => $cat_ids,
        'post__not_in'   => array( get_the_ID() ),
        'post_status'    => 'publish'
    );
    $random_post = get_posts($args);
    if ( empty($random_post) ) return '';
    $url = get_permalink($random_post[0]->ID);
    
    // クラス生成
    $style_class = 'is-style-btn_' . esc_attr($atts['style']);
    
    // 色の判定(#から始まるならカスタム色、それ以外はSWELLクラス)
    $color_class = '';
    $custom_style = '';
    
    if ( strpos($atts['color'], '#') === 0 ) {
        // #ff0000 などの指定の場合、無理やり背景色を変える
        $custom_style = 'style="background-color:' . esc_attr($atts['color']) . ';"';
    } else {
        // red, blue などの場合
        $color_class = 'is-' . esc_attr($atts['color']);
    }

    // 出力
    return '
    <div class="swell-block-button u-mb-ctrl u-mb-10 ' . $style_class . ' ' . $color_class . '">
        <a href="' . esc_url($url) . '" class="swell-block-button__link" ' . $custom_style . '>
            <span>' . esc_html($atts['text']) . '</span>
        </a>
    </div>
    ';
});

貼り付けたら、「ファイルを更新」ボタンを押して保存完了です。エラーが出なければ成功です!

使い方:ショートコードを貼るだけ

あわせて読みたい
それ間違ってません?WordPressブログ開設の「正解」手順チェックリスト。初心者必見!これ守れば失敗し... こんにちは、竹久 夢藤(たけひさ むとう)です。 「よし、WordPressをやるぞ!」と決意したあなた。 素晴らしい行動力です。 でも、ちょっと待ってください。 いきなり...

準備はこれでおしまい。あとは、記事の中やブログパーツで呼び出すだけです。

基本の使い方

パターンA:青くてキラッとする

記事の編集画面で「ショートコード」ブロックを選び、以下のように入力してください。

[random_btn text="次の記事を読む" color="blue" style="shiny"]

これだけで、青色のボタンで「ランダムに別の記事を読む」と表示されます。 クリックすると、今読んでいる記事と同じジャンルの中から、別の記事へジャンプします。

文字や色をアレンジしたい場合

パターンB:好きな色(例:黒)にする

「もっと目立たせたい!」「文言を変えたい!」という時は、真ん中テキスト部分をこんな風に書きます。

[random_btn text="もっと目立たせたい!" color="#000000"]

  • text: ボタンに表示する文字を自由に変えられます。
  • color: SWELL標準の red, blue, green, orange などが指定できます。

クリック率を上げる「設置場所」のアイデア

せっかく作ったこのボタン、どこに置くのが一番効果的だと思いますか? 私が試して効果があったのは、以下の2箇所です。

1. 記事下の「まとめ」の直後 読者が読み終わった瞬間こそ、次の行動を探しているタイミングです。 「この記事が気に入ったあなたには、こんな記事もおすすめかも…?👇」 というテキストと一緒にガチャボタンを置くと、ゲーム感覚で押してくれます。

2. 404ページ(ページが見つかりません) リンク切れなどで表示される404ページ。ここは通常、絶望して離脱される場所ですが… 「お探しのページは見つかりませんでしたが、代わりに運命の記事を読んでみませんか?」 と置いておくと、ピンチがチャンスに変わります。

SWELLの「ブログパーツ」機能を使えば、一度登録するだけで、すべての記事の下に一括で表示させることもできますよ。

まとめ:小さな遊び心がファンを作る

いかがでしたか? 難しいプラグインを入れなくても、数行のコードでブログに「遊び心」はプラスできます。

「効率よく情報を探したい」という読者もいれば、「何か面白い暇つぶしはないかな」と思っている読者もいます。 このランダムボタンは、後者の読者の心をガッチリ掴むはずです。

もし実装してみて「画面が真っ白になった!」などのトラブルがあったら、焦らずバックアップから戻すか、私(の心の中にいるXのエンジニア)に相談してくださいね。 あなたのブログが、読者にとって「いつまでも滞在したい遊園地」のような場所になりますように!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次