get_post_type_archive_link()


WordPressのget_post_type_archive_link()関数は、指定された投稿タイプのアーカイブページのURLを取得するために使用されます。カスタム投稿タイプのアーカイブリンクを生成する際に便利です。

構文

get_post_type_archive_link( string $post_type );
  • $post_type (string) — アーカイブリンクを取得したい投稿タイプのスラッグを指定します。

例1: カスタム投稿タイプのアーカイブリンクを取得

カスタム投稿タイプ「news」のアーカイブページのリンクを取得します。

<?php $archive_link = get_post_type_archive_link( 'news' ); echo $archive_link; ?>

例2: カスタム投稿タイプのアーカイブリンクをボタンとして表示

カスタム投稿タイプ「events」のアーカイブページへのリンクをボタンとして表示します。

<?php $archive_link = get_post_type_archive_link( 'events' ); echo '<a href="' . $archive_link . '" class="button">イベント一覧を見る</a>'; ?>

例3: カスタム投稿タイプのアーカイブリンクをメニューに追加

カスタム投稿タイプ「products」のアーカイブリンクをナビゲーションメニューに追加します。

<?php $archive_link = get_post_type_archive_link( 'products' ); wp_nav_menu( array( 'menu' => 'primary', 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s<li><a href="' . $archive_link . '">製品一覧</a></li></ul>' ) ); ?>

例4: カスタム投稿タイプのアーカイブリンクをフッターに表示

カスタム投稿タイプ「blog」のアーカイブリンクをフッターに表示します。

<?php $archive_link = get_post_type_archive_link( 'blog' ); echo '<footer><a href="' . $archive_link . '">ブログ一覧</a></footer>'; ?>

例5: カスタム投稿タイプのアーカイブリンクをショートコードで使用

カスタム投稿タイプ「portfolio」のアーカイブリンクをショートコードとして登録し、使用します。

<?php function portfolio_archive_link_shortcode() { return get_post_type_archive_link( 'portfolio' ); } add_shortcode( 'portfolio_link', 'portfolio_archive_link_shortcode' ); ?>

例6: カスタム投稿タイプのアーカイブリンクを条件分岐で使用

現在の投稿タイプが「news」の場合にのみ、アーカイブリンクを表示します。

<?php if ( get_post_type() == 'news' ) { $archive_link = get_post_type_archive_link( 'news' ); echo '<a href="' . $archive_link . '">ニュース一覧</a>'; } ?>

例7: カスタム投稿タイプのアーカイブリンクをAJAXで取得

AJAXリクエストを使用して、カスタム投稿タイプ「reviews」のアーカイブリンクを取得します。

<?php add_action( 'wp_ajax_get_reviews_archive_link', 'get_reviews_archive_link' ); function get_reviews_archive_link() { echo get_post_type_archive_link( 'reviews' ); wp_die(); } ?>

例8: カスタム投稿タイプのアーカイブリンクをREST APIで提供

REST APIエンドポイントを通じて、カスタム投稿タイプ「projects」のアーカイブリンクを提供します。

<?php add_action( 'rest_api_init', function () { register_rest_route( 'myplugin/v1', '/archive-link', array( 'methods' => 'GET', 'callback' => 'get_projects_archive_link', ) ); } ); function get_projects_archive_link() { return get_post_type_archive_link( 'projects' ); } ?>

注意点:

  • 指定された投稿タイプがアーカイブページをサポートしていない場合、この関数はfalseを返します。
  • カスタム投稿タイプのアーカイブを有効にするには、register_post_type()has_archivetrueに設定する必要があります。

関連機能: