私は私のindex.php
ページでget_post_type_archive_link('post')
を使ってすべてのカテゴリーのすべての投稿のURLを取得しています。
私はフィルタでそれを使っています。使用しているすべてのカテゴリを個別にリストしました
$filter_cat=array();
$categories = get_categories();
foreach ($categories as $category_one) {
$cat_ID = $category_one->cat_ID;
$cat_name = $category_one->name;
$filter_cat[] ='<a href="'.get_category_link( $cat_ID ).'" data-cat="'.$cat_ID.'">'.$cat_name.'</a>';
}
$filter_cat_out = '<li class="filter_button_category">' . implode('</li><li class="filter_button_category">', $filter_cat) . '</li>';
$filters_out = '<li class="filter_button_category filter_button_all">
<i class="icon-tag"></i><a href="'.get_post_type_archive_link('post').'" class="all_posts">'.esc_attr__('All', 'mytheme').'</a>
</li>
'.$filter_cat_out;
メインページにブログを使用し、静的ページとしてページを選択し、手動でインデックスページに移動した場合(カテゴリの1つに移動する必要がある場合)、[すべて]リンクをクリックした場合すべてのカテゴリが一覧表示されたアーカイブページではなく、常に現在のカテゴリをポイントします。
そのようなことさえ可能ですか?アーカイブページにすべてのカテゴリがリストされるページへのリンクを取得する
技術的には投稿タイプの登録時にアーカイブが登録されていないため、 get_post_type_archive_link()
は投稿タイプpost
へのリンクを返しません。 get_post_type_object( 'post' )
の出力を調べれば、これをチェックすることができます。そのため実際にはget_post_type_archive_link( 'post' )
はfalse
を返します - source を参照してください。
別の方法で投稿のページへのリンクを取得することができます。
$permalink = get_permalink( get_option( 'page_for_posts' ) );