ワードプレスのimg_caption_shortcodeフィルタの使用方法・解説

概要

img_caption_shortcodeフィルタは、キャプション付き画像のHTMLテキストを生成する際に使用されます。このフィルタを利用することで、画像のキャプションをカスタマイズしたり、特別なHTMLを追加することができます。一般的に以下のような機能を実装する際によく使われます。

  1. 画像のキャプションスタイルの変更
  2. キャプション内に特定のクラスを追加する
  3. キャプションのフォーマットをカスタマイズ
  4. 自動リンクの追加
  5. 画像とキャプションのマージンの調整
  6. メディア関係のプラグインとの統合
  7. タイトル属性の追加
  8. ソーシャルメディア共有ボタンの追加

構文

add_filter('img_caption_shortcode', 'my_custom_caption', 10, 3);

パラメータ

  • $output: 生成されたキャプションHTML
  • $attr: 画像の属性情報
  • $content: キャプションの内容

戻り値

フィルタにより変更されたHTML形式のキャプション内容。

関連する関数

img_caption_shortcodeの関連関数リスト

使用可能なバージョン

このフィルタはWordPress 2.9以降で使用可能です。

コアファイルパス

このフィルタはWordPressのコアファイル wp-includes/media.php に含まれています。

サンプルコード

サンプル1: キャプションにクラスを追加

add_filter('img_caption_shortcode', 'add_custom_class_to_caption', 10, 3);
function add_custom_class_to_caption($output, $attr, $content) {
    if (!empty($attr['class'])) {
        $attr['class'] .= ' my-custom-class';
    } else {
        $attr['class'] = 'my-custom-class';
    }
    return do_shortcode(') . '"]' . $content . '');
}

このコードは、キャプションにカスタムクラスを追加することで、スタイルを適用するために使用されます。

サンプル2: 特定のターゲット属性を追加

add_filter('img_caption_shortcode', 'add_target_to_caption_link', 10, 3);
function add_target_to_caption_link($output, $attr, $content) {
    return str_replace('<a ', '<a target="_blank" ', $output);
}

このコードはキャプション内のリンクにtarget="_blank"を追加し、新しいタブで開くようにします。

サンプル3: キャプションのHTMLフォーマットを変更

add_filter('img_caption_shortcode', 'custom_caption_format', 10, 3);
function custom_caption_format($output, $attr, $content) {
    return '<div class="custom-caption">' . $content . '</div>';
}

このコードはキャプションの部分をカスタムHTMLラッパーで囲むことで、デザインを一新します。

サンプル4: メディアの属性を有効化

add_filter('img_caption_shortcode', 'enable_media_attributes', 10, 3);
function enable_media_attributes($output, $attr, $content) {
    $attr['style'] = 'text-align: center;';
    return do_shortcode(') . '"]' . $content . '');
}

このコードはキャプションにstyle属性を追加し、中央揃えにします。

サンプル5: 内容に条件を追加

add_filter('img_caption_shortcode', 'conditional_caption', 10, 3);
function conditional_caption($output, $attr, $content) {
    if (strpos($content, 'important') !== false) {
        return '<strong>' . $output . '</strong>';
    }
    return $output;
}

このコードは、キャプションの内容に「重要」という単語があればキャプションを強調表示します。

この関数のアクションでの使用可能性

アクション 使用可能性
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

非推奨または削除されたバージョン

特定のバージョンで非推奨または削除された状況はありません。

この関数について質問する


上の計算式の答えを入力してください