概要
get_archives_link
フィルタは、エントリーアーカイブリンクのテキストを取得・変更するために使用されるフィルタです。このフィルタは、アーカイブページの構築時にカスタマイズを行う際によく利用されます。具体的には以下のような機能実装時に役立ちます。
- アーカイブリンクの表示テキストを変更
- アーカイブチャートのデザインを調整
- 特定の条件に基づいてアーカイブをフィルタリング
- リンクのクラスやID属性を追加
- アーカイブの順序を変更
- カスタムメッセージをアーカイブリンクに組み込む
- アーカイブページの動的生成
- マルチサイト環境でのアーカイブのカスタマイズ
構文
$string apply_filters( 'get_archives_link', $link, $args );
パラメータ
$link
: HTML形式のアーカイブリンク。$args
: アーカイブリンクの生成に使用された引数の配列。
戻り値
フィルタ後のHTML形式のアーカイブリンク。
関連する関数
使用可能なバージョン
このフィルタは、WordPressのバージョン 2.3.0 以降で使用可能です。
コアファイルのパス
wp-includes/general-template.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: アーカイブリンクのテキストを変更する
add_filter('get_archives_link', 'change_archives_link_text', 10, 2);
function change_archives_link_text($link, $args) {
// 「アーカイブ」から「月別アーカイブ」に変更
return str_replace('アーカイブ', '月別アーカイブ', $link);
}
説明: アーカイブリンクのテキストを「アーカイブ」から「月別アーカイブ」に変更します。
サンプル2: アーカイブリンクにカスタムクラスを追加
add_filter('get_archives_link', 'add_custom_class_to_archives_link', 10, 2);
function add_custom_class_to_archives_link($link, $args) {
// カスタムクラスを追加
return str_replace('<a ', '<a class="my-custom-class" ', $link);
}
説明: アーカイブリンクに「my-custom-class」というクラスを追加します。
サンプル3: アーカイブリンクの順序を逆にする
add_filter('get_archives_link', 'reverse_archives_order', 10, 2);
function reverse_archives_order($link, $args) {
// リンクの順序を逆にするサンプル(擬似コード)
return $link; // 実際の実装は加工が必要
}
説明: リンクの順序を逆にするために加工する方法を示しています。
サンプル4: アーカイブリンクにアイコンを追加
add_filter('get_archives_link', 'add_icon_to_archives_link', 10, 2);
function add_icon_to_archives_link($link, $args) {
// リンクにアイコンを追加)
return '<i class="icon-archive"></i> ' . $link;
}
説明: アーカイブリンクの前にアイコンを追加します。
サンプル5: 条件に応じてアーカイブリンクを非表示にする
add_filter('get_archives_link', 'hide_archives_link_for_no_posts', 10, 2);
function hide_archives_link_for_no_posts($link, $args) {
// 投稿がない場合はリンクを非表示にする
if (!have_posts()) {
return '';
}
return $link;
}
説明: 投稿が存在しない場合、アーカイブリンクを非表示にします。