当サイトにはプロモーションが含まれます。
画像挿入記事投稿スピートを上げる

ALTタグを自動で投稿タイトルにするPHP

画像挿入

画像のSEO対策で必要な「ALTタグ」。画像が表示さないときの代替テキストになったり、検索エンジンが画像の内容を理解するために重要な要素です。

記事内にいくつも画像がある場合、1つ1つALTタグを設定するのが面倒なときがあります。

そんなときのために、ALTタグに投稿タイトルを自動で設定するPHPをChatGPTに考えてもらいました。

altが未設定の場合に、自動で記事タイトルに設定する

本文に記載する内容は functions.php に記載するため、予期せぬエラーが発生する可能性があります。記載する前に必ずバックアップを取り、自己責任で実施してください。
また、アフィリエイトサイトには向かない場合があります。

/*==================================
記事内の画像にaltが未設定の場合に自動で記事タイトルをaltに設定
分類:新規処理
参考:ChatGPT
==================================*/
function add_alt_to_images($content) {
    // 現在の投稿タイトルを取得
    if (is_singular() && in_the_loop() && is_main_query()) {
        global $post;
        $post_title = esc_attr($post->post_title);

        // 画像タグを正規表現で検索し、alt属性が空または存在しない場合に追加
        $content = preg_replace_callback(
            '/<img([^>]*?)>/i',
            function ($matches) use ($post_title) {
                $img_tag = $matches[0];
                $attributes = $matches[1];

                // alt属性を確認
                if (!preg_match('/alt=["\']([^"\']*)["\']/', $attributes)) {
                    // alt属性が存在しない場合、追加
                    $img_tag = str_replace('<img', '<img alt="' . $post_title . '"', $img_tag);
                } elseif (preg_match('/alt=["\']\s*["\']/', $attributes)) {
                    // alt属性が空の場合、記事タイトルを設定
                    $img_tag = preg_replace('/alt=["\']\s*["\']/', 'alt="' . $post_title . '"', $img_tag);
                }

                return $img_tag;
            },
            $content
        );
    }

    return $content;
}

add_filter('the_content', 'add_alt_to_images');

※上記コードはChatGPTによって出力されたものです。

フィルタフック「the_content」で本文を出力する前に処理が行われます。

ALTタグを自動で投稿タイトルにするPHP

画像のように、altタグに記事タイトルが設定されれば完了です。

コード使用の注意点

紹介したコードは、あくまで本文出力に関わる「the_content」がフィルタフックとなっています。

ALTタグを自動で投稿タイトルにするPHP

そのため、本文以外の画像…例えば、記事一覧ページや関連記事のアイキャッチには反映されません。

ぬかりなくaltを生成したいのであれば、フィルタフックを追加するか、functions.phpではなくテーマのPHPを編集する必要があります。

あくまで簡易的な処置としてご利用ください。

アフィリエイトサイト運営時での注意点

アフィリエイトサイトのタグの種類によっては、計測用として<img>タグが使われている場合があります。

上記のコードはaltがついていない<img>タグに処理を行うので、アフィリエイトコードに改変を加えてしまうおそれがあります。

そのため、アフィリエイトやアドセンス関連のサイトは上記のコードを使わないことをおすすめします

タイトルとURLをコピーしました