Enlaces Anterior/Siguiente para Custom Post Type

19 oct 2011, 22:25:20
Vistas: 64K
Votos: 14

Tengo un custom post type llamado portfolio. Necesito enlaces de anterior/siguiente SIN usar un plugin. ¿Alguien tiene una solución?

Ejemplo de entrada: http://themeforward.com/demo2/archives/portfolio/boat

<?php get_header(); ?>

<!-- Inicio del contenedor -->
<div class="clear">
<div id="full_container">
<div id="content2">
<div id="content">

<!-- Obtener entradas -->
<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>

<!-- Título de la entrada -->
<h1>
    <?php the_title(); ?>
</h1>

<!-- La entrada -->
<?php the_content(); ?>

<!-- Etiquetas -->
<h3 class="tags">
    <?php the_tags('Etiquetas ',' / ','<br />'); ?>
</h3>

<!-- Fin del contenedor -->
</div>

<!-- Entradas Anterior/Siguiente -->
<div class="mp_archive2">
<div id="more_posts">
    <div class="oe">
        <?php previous_post_link('%link', '« Entrada anterior', TRUE); ?>
    </div>

    <div class="re">
        <?php next_post_link('%link', 'Entrada siguiente »', TRUE); ?>
    </div>
</div>
</div>

<?php endwhile; else: ?>
<p>No se encontraron entradas coincidentes.</p>
<?php endif; ?>
</div>
</div>
</div>
</div>
<?php get_footer(); ?>
4
Comentarios

¿Por qué la aversión a los plugins?

chrisguitarguy chrisguitarguy
19 oct 2011 23:06:07

Porque si es un plugin, no está integrado en el tema.

AndrettiMilas AndrettiMilas
19 oct 2011 23:26:16

@Lucas Wynne Si lo quieres integrado, copia/pega el código de algún plugin en tu archivo functions.php del tema.

kaiser kaiser
19 oct 2011 23:50:10

@kaiser asumiendo, por supuesto, que te mantengas dentro de los términos de la licencia y las condiciones de propiedad intelectual, lo cual no es tan fácil si estás produciendo un tema para la venta.

Phill Healey Phill Healey
24 jul 2016 14:20:46
Todas las respuestas a la pregunta 3
2
21
<?php
$prev_post = get_previous_post();
if($prev_post) {
   $prev_title = strip_tags(str_replace('"', '', $prev_post->post_title));
   echo "\t" . '<a rel="prev" href="' . get_permalink($prev_post->ID) . '" title="' . $prev_title. '" class=" ">&laquo; Entrada anterior<br /><strong>&quot;'. $prev_title . '&quot;</strong></a>' . "\n";
}

$next_post = get_next_post();
if($next_post) {
   $next_title = strip_tags(str_replace('"', '', $next_post->post_title));
   echo "\t" . '<a rel="next" href="' . get_permalink($next_post->ID) . '" title="' . $next_title. '" class=" ">Siguiente entrada &raquo;<br /><strong>&quot;'. $next_title . '&quot;</strong></a>' . "\n";
}
?>
20 nov 2013 12:05:11
Comentarios

Por favor, formatea tus códigos/respuesta y añade una explicación.

Maruti Mohanty Maruti Mohanty
20 nov 2013 12:35:55

¿Hay alguna forma de limitarlo a la taxonomía en la que está el CPT?

gil hamer gil hamer
8 abr 2014 12:28:20
8
15

Si necesitas enlaces de siguiente/anterior para publicaciones individuales, WordPress incluye las funciones incorporadas next_post_link y su correspondiente previous_post_link, las cuales probablemente deberían usarse dentro del loop.

Para archivos, utiliza next_posts_link y previous_posts_link.

Todas estas funciones funcionarán correctamente con tipos de publicaciones personalizados (custom post types).

19 oct 2011 23:12:33
Comentarios

No están funcionando en mi tema.

AndrettiMilas AndrettiMilas
19 oct 2011 23:26:05

Vale. Bueno, sin ver tu código, es difícil decir por qué. ¿Hay algún error o advertencia en PHP? ¿Has insertado múltiples entradas para que las funciones obtengan los enlaces?

chrisguitarguy chrisguitarguy
19 oct 2011 23:46:52

He actualizado mi pregunta arriba.

AndrettiMilas AndrettiMilas
19 oct 2011 23:57:03

Pruébalo con el tercer argumento TRUE y háznoslo saber.

chrisguitarguy chrisguitarguy
20 oct 2011 00:11:28

¿Tercer argumento TRUE?

AndrettiMilas AndrettiMilas
20 oct 2011 00:13:18

Usa esto <?php next_post_link('%link', 'Next post »'); ?> y <?php next_post_link('%link', 'Next post »'); ?>

chrisguitarguy chrisguitarguy
20 oct 2011 00:16:29

Esto funciona en tipos de posts personalizados, pero ¿qué pasa con la misma taxonomía del post actual?

jepser jepser
4 oct 2012 23:08:49

@jepser (Llegando tarde a la fiesta aquí) Necesitarías especificar la taxonomía a usar como quinto argumento. Si solo pasas los primeros 3 argumentos y habilitas el tercero para mantener la misma taxonomía, probablemente falle porque la taxonomía por defecto es category (que probablemente tu CPT no tenga). Consulta los artículos del codex enlazados en la respuesta.

Evan Mattson Evan Mattson
7 feb 2014 21:39:25
Mostrar los 3 comentarios restantes
1

Puedes usar get_adjacent_post para obtener el objeto de la publicación anterior o siguiente en el bucle.

Puedes cambiar el tercer parámetro a verdadero o falso para obtener el objeto de la publicación siguiente o anterior. get_adjacent_post( false, '', true);

Con este conocimiento podemos usar get_the_permalink para obtener la URL de las publicaciones y crear tus propios enlaces, sin necesidad de eliminar basura que WordPress agrega en otros métodos.

Este método es más útil si deseas estilizar los hipervínculos tú mismo y tener control total sobre el formato.

<?php
    $next_post = get_adjacent_post( false, '', false);
    $next_post_url = get_the_permalink($next_post);

    $previous_post = get_adjacent_post( false, '', true);
    $previous_post_url = get_the_permalink($previous_post);
?>

<a href="<?php echo $next_post_url;?>">Siguiente publicación</a>
<a href="<?php echo $previous_post_url;?>">Publicación anterior</a>
3 feb 2022 13:40:09
Comentarios

Adicionalmente, si deseas tener un bucle continuo de publicaciones puedes usar esto: https://wplancer.com/infinite-next-and-previous-post-looping-in-wordpress/

SunnyRed SunnyRed
29 ago 2022 19:55:52