2012-07-07 17 views
7

Se trata de la vista de una sola publicación. Estoy tratando de establecer los enlaces para entradas del blog anterior y siguiente, como de esta manera:cómo obtener publicaciones y títulos posteriores/anteriores en wordpress

<a class="prevpost" href="linktoprevpost" title="prev post's title">&nbsp;</a> 
<a class="nextpost" href="linktonextpost" title="next post's title">&nbsp;</a> 

donde ambos enlaces obtener una imagen como fondo mediante el uso de display: block y la anchura y altura especificados. Los títulos de las publicaciones vinculadas deben estar accesibles a través del atributo de título de las etiquetas a, de modo que los usuarios puedan verlas al pasar el ratón.
También quiero restringir las publicaciones vinculadas en la categoría actual. Así que tengo que encontrar una manera de conseguir

  1. una una etiqueta con el href del anterior/siguiente post
  2. que está en la misma categoría que la que actualmente se ve
  3. sin texto interno debido la backgroundimage
  4. con la anterior/siguiente nombre puesto en el título-atributo
  5. con un css-clase personalizada


La coincidencia de categorías debe ser solo del primer nivel porque dividí mi página en 3 categorías principales. Estoy usando

$a = get_the_category(get_the_ID()); 
$cat = $a[0]->name; 

para obtener el nombre de la primera categoría y configurarlo como body-class adicional en header.php. Tal vez podría reutilizar eso?

También he encontrado que el uso de previous_post_link() y next_post_link() como esta manera

next_post_link('%link', '', TRUE); 

me da los puestos de la misma categoría sin contenido interior, de modo 1 3 se resolverían. Pero parece que para obtener 4 & 5 también necesitaré otra forma.

Usando Wordpress Versión 3.4.1.

+0

Vea también http://wordpress.stackexchange.co m/questions/57831/get-the-prev-next-page-links-only-not-title-a-etc – fuxia

+0

Se trata de la página anterior, no de la publicación, y no puedo encontrar una coincidencia de mis 5 puntos- listado arriba. – 32bitfloat

Respuesta

24

No hay necesidad de funciones y filtros de todo lo que necesita hacer es utilizar get_adjacent_post en lugar de next_post_link y prev_post_link, Tenga en cuenta que get_adjacent_post se utiliza para obtener el post anterior y siguiente, se puede leer sobre él here Para obtener post anterior y es atributo de título usan este

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

Para obtener próximo post y es atributo title utilizar este

$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>'; } 
+0

Esto me salvó el culo. Muchas gracias – Christina

-2
<? 
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>'; 

?> 
+2

gracias por su respuesta, pero supongo que no puedo ir directamente a lo largo de las ID de publicación si quiero restringir las publicaciones vinculadas en la categoría actual principal. Es posible que la próxima identificación devuelva una publicación de otra categoría. – 32bitfloat

+0

No es fácil. Puede usar las declaraciones if para ver si hay una página siguiente o si hay una página anterior, – maxhud

+6

, agregar y restar 1 de la ID definitivamente no es una manera confiable de obtener las publicaciones siguientes y anteriores. – jessica

1

Lo tengo.

Ahora bien, este es mi código:

$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>'; 

La función devuelve un objeto de la próxima entrada anterior/que puedo utilizar para la generación de mis enlaces. El primer parámetro es para restringir la publicación en el mismo gato.
Busqué en wordpress codex algunas veces ayer, pero no encontré esta función, ahora la puse por accidente.

Si alguien tiene un método mejor/más simple/más rápido, publique para obtener una respuesta aceptada.

+1

no use el guid como enlace de publicación, no se actualiza cuando las barras de publicación cambian o si se mueve a un nuevo dominio, etc. use 'get_permalink ($ post-> ID)', ya que eso siempre le dará el enlace correcto. – jessica

+0

Esto es útil .. – sun

Cuestiones relacionadas