目次
get_archives_link()の用途
get_archives_link()
は、WordPress でアーカイブリンク(例:月別アーカイブなど)を生成する内部関数です。通常は wp_get_archives()
の内部で使われるため、直接使うことはあまりありませんが、自作ループなどでアーカイブリンクをカスタム表示したいときには役立ちます。
get_archives_link()の使用方法
get_archives_link( string $url, string $text, string $format = 'html', string $before = '', string $after = '' )
get_archives_link()のパラメータ一覧
パラメータ | 型 | 説明 |
---|
$url | string | アーカイブページへのURL(例:/2024/06/ など) |
---|
$text | string | リンクとして表示するテキスト(例:2024年6月 など) |
---|
$format | string | リンクのフォーマット形式(デフォルト:html ) |
---|
$before | string | リンクの前に追加されるHTML(例:<li> など) |
---|
$after | string | リンクの後に追加されるHTML(例:</li> など) |
---|
get_archives_link()の使用例
HTMLリストで月別アーカイブを手動で出力
$archives = wp_get_archives([
'type' => 'monthly',
'format' => 'custom',
'echo' => 0
]);
// 出力される各アーカイブのデータを分解して手動で加工したいとき
global $wpdb;
$results = $wpdb->get_results("
SELECT DISTINCT YEAR(post_date) AS year, MONTH(post_date) AS month
FROM $wpdb->posts
WHERE post_type = 'post' AND post_status = 'publish'
ORDER BY post_date DESC
");
echo '<ul>';
foreach ( $results as $result ) {
$url = get_month_link( $result->year, $result->month );
$text = sprintf( '%d年%02d月', $result->year, $result->month );
echo get_archives_link( $url, $text, 'html', '<li>', '</li>' );
}
echo '</ul>';
$formatの種類
値 | 説明 |
---|
html | <li><a href="...">テキスト</a></li> (通常形式) |
---|
option | <option value="URL">テキスト</option> (セレクトボックス用) |
---|
link | <a href="...">テキスト</a> (プレーンリンク) |
---|
custom | HTMLなしの純粋な文字列(wp_get_archives() でのみ有効) |
---|
get_archives_link()の使いどころ
- 独自デザインのアーカイブウィジェットを作成するとき
- カスタム投稿タイプや特殊なフィルター条件でアーカイブリンクを生成したいとき
- セレクトボックス形式でアーカイブを表示したいとき
get_archives_link()の関連関数
関数名 | 役割 |
---|
wp_get_archives() | アーカイブリンクを一覧出力(内部で get_archives_link() を使用) |
---|
get_month_link() | 指定年月のアーカイブURLを取得 |
---|
get_year_link() | 指定年のアーカイブURLを取得 |
---|
get_post_type_archive_link() | カスタム投稿タイプのアーカイブURLを取得 |
---|