概要
get_attachment_link
フィルタは、添付メディアのパーマリンクURLを取得する際に利用されるフィルタです。このフィルタを使用することで、WordPressサイト内のメディアファイルへのリンクをカスタマイズできます。具体的には、以下のような機能を実装する際によく使われます。
- メディアリンクのHTMLをカスタマイズ
- リンクのクラスやIDを追加
- 特定の条件下でリンクを制御(例:特定のポストタイプでのメディア)
- カスタムのメディアビジュアライゼーションを作成
- リンクのターゲット属性を制御
- メディアファイルのURLを条件に応じて置換
- 特別な効果や動作を持つリンクを生成
- SEO向けの特別なメタ情報を追加
構文
apply_filters( 'get_attachment_link', $html, $id, $size, $permalink, $image, $atts );
パラメータ
$html
(string): 生成されたリンクのHTML。$id
(int): 添付ファイルのID。$size
(mixed): 画像のサイズ(例:’thumbnail’, ‘medium’, ‘large’など)。$permalink
(bool): パーマリンクを含めるかどうか。$image
(bool): 画像を表示するかどうか。$atts
(array): 追加の属性を含む配列。
戻り値
$hmtl (string): フィルタが適用された後のリンクのHTML。
関連する関数
https://refwp.com/?titleonly=1&s=get_attachment_link
使用可能なバージョン
get_attachment_link
フィルタは、WordPress 2.0以降で使用可能です。
コアファイルのパス
wp-includes/media.php
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |
サンプルコード
サンプルコード1: リンクのHTMLをカスタマイズ
add_filter( 'get_attachment_link', 'custom_attachment_link', 10, 6 );
function custom_attachment_link( $html, $id, $size, $permalink, $image, $atts ) {
return '<span class="custom-class">' . $html . '</span>';
}
このサンプルコードは、添付ファイルのリンクHTMLをカスタマイズし、カスタムクラスを追加します。
サンプルコード2: リンクのターゲット属性を変更
add_filter( 'get_attachment_link', 'change_attachment_target', 10, 6 );
function change_attachment_target( $html, $id, $size, $permalink, $image, $atts ) {
return str_replace('href=', 'target="_blank" href=', $html);
}
このサンプルコードは、添付ファイルのリンクを新しいタブで開くように変更します。
サンプルコード3: 特定のポストタイプでのみフィルタを適用
add_filter( 'get_attachment_link', 'conditional_attachment_link', 10, 6 );
function conditional_attachment_link( $html, $id, $size, $permalink, $image, $atts ) {
if (get_post_type($id) === 'custom_post_type') {
// 特定のポストタイプのみカスタマイズ
return '<strong>' . $html . '</strong>';
}
return $html;
}
このサンプルコードは、特定のポストタイプに対してのみリンクをカスタマイズします。
サンプルコード4: リンクにデータ属性を追加
add_filter( 'get_attachment_link', 'add_data_attribute', 10, 6 );
function add_data_attribute( $html, $id, $size, $permalink, $image, $atts ) {
return str_replace('<a ', '<a data-custom="value" ', $html);
}
このサンプルコードは、リンクにカスタムデータ属性を追加します。
サンプルコード5: プラグインでの使用例
add_filter( 'get_attachment_link', 'your_plugin_attachment_link', 10, 6 );
function your_plugin_attachment_link( $html, $id, $size, $permalink, $image, $atts ) {
// プラグイン用の特別なロジックを追加
return $html . '<span>プラグインによるカスタム情報</span>';
}
このサンプルコードは、プラグインでの添付ファイルリンクの使用例を示しています。カスタム情報を追加します。