web-dev-qa-db-fra.com

next_post_link et previous_post_link dans une seule page de type publication personnalisée, dans la même catégorie non personnalisée

J'ai un type de message personnalisé "réalisation", pour lequel j'ai créé un fichier single-realisation.php. Ces publications utilisent la "catégorie" de taxonomie non personnalisée. Sur cette page, j’utilise les fonctions next_post_link() et previous_post_link(), avec le paramètre in_same_term défini sur TRUE. J'ai également essayé de définir les autres paramètres sur '' et 'catégorie' (car le site a été créé avant la version 3.8, je crois).

Mon problème est que la catégorie ne semble pas être prise en compte. Les liens apparaissent, mais mèneront aux publications de réalisation suivantes ou précédentes par ordre de création, en ignorant la catégorie dans laquelle se trouve la publication actuelle.

Pourtant, tout le reste concernant la catégorie semble fonctionner. Je le récupère à l'aide de $categorie = get_the_category() et note ensuite que $category[0]->name et le nom de la catégorie apparaissent correctement. Et tout cela est dans la boucle, bien sûr.

J'ai également essayé var_dumping get_next_post() et get_adjacent_post() avec in_same_term défini sur true et le résultat est toujours identique. J'obtiens le prochain post de réalisation immédiat malgré la catégorie.

Y a-t-il quelque chose de spécial que je devrais faire lorsque j'essaie d'utiliser les catégories Vanilla avec des types de publication personnalisés avec next_post_link() et previous_post_link()? Peut-être que la syntaxe du paramètre taxonomie?

2
Alexis D.

Tout d’abord, veuillez vérifier dans votre fonction "custom_post_type" que le type de message personnalisé que vous enregistrez est tout à fait correct comme 'taxonomies'=> array( 'category') & 'has_archive' => true,! Si c'est le cas, vous devez être mal positionné pour l'afficher.

À propos de next_post_link et de previous_post_link, essayez avec ceci dans votre fichier single-realisation.php

$prev_post = get_previous_post(); $next_post = get_next_post();    
 if(!empty($prev_post)):
        echo '<a href="'.get_the_permalink($prev_post->ID).'">'.__('Previous','text-domain').'</a>';
  endif;

if(!empty($next_post)):
     echo '<a href="'.get_the_permalink($next_post->ID).'" >'.__('Next','text-domain').'</a>';
endif;

Je crois que vous obtiendrez également votre type de lien post précédent et précédent.

Merci Msua

1
MD MUSA