9
votes

Comment obtenir la prochaine / Poste précédente Hrefs et Titres dans WordPress

Il s'agit de la vue d'un seul post. J'essaie de définir les liens pour les blogposts précédents et suivants comme cette voie: xxx

où les deux liens obtiennent une image comme arrière-plan à l'aide d'affichage: bloc et largeur et hauteur spécifiés. Les titres des messages liés doivent être accessibles via l'attribut Title-Titre des balises A, afin que les utilisateurs puissent les voir en planant.
Je souhaite également restreindre les messages liés sur la catégorie actuelle. Donc, j'ai besoin de trouver un moyen d'obtenir

  1. une étiquette A avec le href de la précédente / suivante POST
  2. qui est dans la même catégorie que celle actuellement visionnée
  3. sans texte intérieur à cause de l'arrière-plan
  4. avec le nom précédent / suivant Nom du poste dans le titre-Attribut
  5. avec une classe CSS personnalisée


    La catégorie correspondante doit être que le premier niveau car j'ai divisé ma page en 3 catégories principales. J'utilise xxx

    pour obtenir le nom de la première catégorie et la définir comme une classe de corps supplémentaire dans Header.php. Peut-être que je pourrais réutiliser ça?

    J'ai aussi découvert que d'utiliser précédemment_post_link () et Next_post_link () comme cette voie xxx

    me donne les messages de la même catégorie sans contenu intérieure, les 1 et 2 et 3 être résolu. Mais il semble que 4 & 5 aussi, j'aurai besoin d'une autre manière.

    Utilisation de WordPress Version 3.4.1.


2 commentaires

Voir aussi WordPress.stackeXchange.com/questions/57831/...


Il s'agit de la page précédente, pas de post, et je ne trouve pas de correspondance de ma liste 5 points ci-dessus.


4 Réponses :


-4
votes
<?
echo '<a href="'.get_permalink( get_the_ID()-1 ).'" title="'.get_the_title( get_the_ID()-1 ).'">Previous</a>'; 
echo '<a href="'.get_permalink( get_the_ID()+1 ).'" title="'.get_the_title( get_the_ID()-1 ).'">Next</a>';

?>

3 commentaires

Merci pour votre réponse, mais je suppose que je ne peux pas aller directement le long des identifiants de poste si je veux limiter les messages liés à la catégorie actuelle principale. Il pourrait être possible que l'identifiant suivant retourne un poste d'une autre catégorie.


Pas facilement. Vous pouvez utiliser si des déclarations pour voir s'il existe une page suivante ou s'il y a une page précédente


L'ajout et la soustraction de 1 de l'ID ne sont définitivement pas un moyen fiable d'obtenir les postes suivants et précédents.



1
votes

obtenu.

MAINTENANT Ceci est mon code: P>

$p = get_adjacent_post(1, '', 1);
if(!empty($p)) echo '<a class="prevpost" href="'.$p->guid.'" title="'.$p->post_title.'">&nbsp</a>';
$n = get_adjacent_post(1, '', 0);
if(!empty($n)) echo '<a class="nextpost" href="'.$n->guid.'" title="'.$n->post_title.'">&nbsp</a>';


1 commentaires

N'utilisez pas le GUID comme lien postal, il n'est pas mis à jour lorsque vous postez des limaces change ou si vous vous déplacez dans un nouveau domaine, etc. Utilisez get_permalink ($ post-> ID) . vous donnera toujours le bon lien.



45
votes

Pas besoin de fonctions et de filtres Tout ce que vous avez à faire est d'utiliser get_adjacent_post code> au lieu de next_post_link code> et prev_post_link code>, note que get_adjacent_post code> est utilisé pour obtenir le message précédent et suivant, vous pouvez en savoir plus ici Pour obtenir un message précédent et son attribut de titre, utilisez ce xxx pré>

pour obtenir le message suivant et son attribut de titre utilise ce P>

$next_post = get_adjacent_post(false, '', false);
if(!empty($next_post)) {
echo '<a href="' . get_permalink($next_post->ID) . '" title="' . $next_post->post_title . '">' . $next_post->post_title . '</a>'; }


3 commentaires

Cela a sauvé mon cul. Merci beaucoup


Je l'utilise, mais pour le prochain message indiquant l'identifiant postal actuel et pour le précédent, il affiche 3 ou 4 fois ID Post pour les postes précédents.


J'adore cette solution, ça marche pour moi. Merci beaucoup - @christina



0
votes

Étape 1: Il vous suffit d'ajouter cette fonction ci-dessous dans Function.PHP

<a href="<?php echo_next_previous_post_link("link","next"); ?>"><?php echo_next_previous_post_link("title","next"); ?></a>                            

<a href="<?php echo_next_previous_post_link("link","previous"); ?>"><?php echo_next_previous_post_link("title","previous"); ?></a>  


0 commentaires