J'utilise get_post_type_archive_link('post')
sur ma page index.php
pour obtenir l'URL de toutes les publications de toutes les catégories.
Je l'utilise dans un filtre. J'ai énuméré toutes les catégories séparément en utilisant
$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;
Maintenant, tout fonctionne bien, si j'utilise blog comme page principale, mais si je sélectionne une page comme page statique et que je parviens à ma page d'index manuellement (je dois aller à l'une des catégories), le lien "Toutes" pointera toujours sur la catégorie actuelle au lieu de la page d'archive avec toutes les catégories répertoriées.
Une telle chose est-elle possible? Obtenir un lien vers une page où toutes les catégories seront listées dans ma page d'archives?
get_post_type_archive_link()
ne renvoie pas de lien pour le type de message post
, car techniquement, il n'a pas d'archive enregistrée lors de l'enregistrement du type de message. Vous pouvez le vérifier si vous inspectez la sortie de get_post_type_object( 'post' )
. Donc, en fait, get_post_type_archive_link( 'post' )
retournera false
- voir source .
Vous pouvez obtenir le lien de la page pour les articles d'une autre manière:
$permalink = get_permalink( get_option( 'page_for_posts' ) );