見出し画像

【SWELL】関連記事ブロック画像のaltを設定してみた。

SWELLマニアの かんた(@swell_mania)です。

WordPressテーマSWELLのカスタマイズメモ、今回はSWELLカスタムブロックの関連記事ブロックです。

【SWELL】関連記事ブロック
【SWELL】関連記事ブロック


関連記事ブロックを利用すると、サイト内の記事、サイト外記事へのリンクをリンクカードで表示させることができます↓

関連記事ブロックのサンプル
関連記事ブロックのサンプル




画像のaltが空

関連記事ブロックの出力HTMLを見てみると、画像要素(img)のaltタグが空(から)です。

【SWELL関連記事ブロックのHTML】画像タグのaltが空
【SWELL関連記事ブロックのHTML】画像タグのaltが空



altだけで、中身がありません…


そんなわけで今回のカスタマイズです。関連記事ブロックのimgのaltに、記事タイトルを表示してみました。



カスタマイズの環境


  • WordPress:6.7.2

  • SWELL:2.13.0

  • Code Snippets:3.6.6.1

WordPress、SWELL、プラグインは記事公開時に利用可能な最新バージョンです。

【カスタマイズの概要】

Code Snippetsプラグインにコードを設置する方式です。
サンプルのコードを貼るだけなので作業時間は長くても1分です。




更新履歴

  • 2024年11月28日 記事公開




カスタマイズ


次のコードをCode Snippetsプラグインに貼り付けます。

function customize_post_link_block( $block_content, $block ) {
    // 対象のブロック名をチェック
    if ( 'loos/post-link' === $block['blockName'] ) {
        // 初期化
        $link_text = '';

        // <a class="p-blogCard__title">のテキスト部分を取得
        if ( preg_match( '/<a[^>]*class="[^"]*p-blogCard__title[^"]*"[^>]*>(.*?)<\/a>/is', $block_content, $matches ) ) {
            $link_text = trim( $matches[1] ); // マッチしたリンクテキストを取得
        }

        // <img> タグが存在する場合のみ処理
        if ( ! empty( $link_text ) && preg_match( '/<img[^>]*>/i', $block_content ) ) {
            // 正規表現で <img> タグの alt 属性を探して置換
            $block_content = preg_replace(
                '/<img([^>]*?)alt=["\'].*?["\'](.*?)>/i', // alt 属性を探す
                '<img$1alt="' . esc_attr( $link_text ) . '"$2>', // alt 属性を $link_text に置き換える
                $block_content
            );
        }
    }

    return $block_content; // 加工したHTMLを返す
}
add_filter( 'render_block', 'customize_post_link_block', 10, 2 );




今回は以上です。

最後までお読みいただきありがとうございます。


いいなと思ったら応援しよう!