est-il possible d'obtenir next_post_link

9

J'ai rencontré un problème lors de l'utilisation de la fonction next_post_link (). Il semble que cette fonction fasse automatiquement écho à celle-ci, pour des raisons de position, j'en ai besoin pour simplement renvoyer le lien. Existe-t-il une fonction ou une solution de contournement disponible que je peux utiliser pour obtenir ce résultat?

GaryDevenay
la source

Réponses:

17

essayez de travailler avec http://codex.wordpress.org/Function_Reference/get_adjacent_post ;

exemple:

$next_post_link_url = get_permalink( get_adjacent_post(false,'',false)->ID ); 
$prev_post_link_url = get_permalink( get_adjacent_post(false,'',true)->ID );
Michael
la source
1
Gardez à l'esprit que cela n'obtiendra que l' URL adjacente - vous devrez générer le HTML comme next_post_linkvous le faites .
TheDeadMedic
2

Si vous jetez un oeil à la source, next_post_linkc'est juste un wrapper pour adjacent_post_link.

Malheureusement, cette fonction ne prend aucune forme de paramètre 'echo', vous devrez donc soit répliquer le code dans votre propre fonction et renvoyer la valeur, soit l'attraper dans un tampon de sortie;

ob_start();
next_post_link();
$next_post_link = ob_get_clean();
TheDeadMedic
la source
1

En fait, oui: utilisez simplement get_next_posts_link(), en utilisant les mêmes arguments.

La next_posts_lin()fonction fait simplement écho à la valeur retournée de get_next_posts_link().

ÉDITER

Euh, peu importe. J'ai mal lu le nom de la fonction.

Vous pouvez utiliser get_next_post(), qui renvoie un objet de publication; alors vous pouvez obtenir le permalien à partir du paramètre d'objet ID retourné:

$nextpost = `get_next_post( $args )`;
$nextpostid = $nextpost->ID;
$nextpostlink = get_permalink( $nextpostid );
Chip Bennett
la source