Enlace siguiente y anterior en tipo de entrada personalizada dentro del mismo término de taxonomía

9 jul 2012, 08:46:55
Vistas: 15.4K
Votos: 3

Tengo un tipo de entrada personalizado name->('portfolio'), con una taxonomía llamada 'portfolio_category'.

Lo que quiero es agregar enlaces de siguiente y anterior en su archivo de página individual que es single-portfolio.php. Cuando haga clic en cualquiera de los enlaces, debería redirigir al post siguiente o anterior del mismo tipo de entrada y dentro del mismo término de taxonomía.

Usé next_post_link() y previous_post_link() pero parece que solo funcionan en entradas normales, no en tipos de entrada personalizados.

Cualquier sugerencia será muy apreciada.

1
Comentarios

Puedo recomendar el siguiente plugin, next-previous-post-link-plus-for-wordpress Lo estoy usando con 3.5.x sin ningún problema.

Nicolai Grossherr Nicolai Grossherr
2 jul 2013 16:53:36
Todas las respuestas a la pregunta 4
0

previous_post_link() y next_post_link() funcionan perfectamente con tipos de contenido personalizados. Necesitas pegar este código en tu single-customposttype.php (que en tu caso sería single-portfolio.php):

<div class="previous-post-link">
                <?php previous_post_link('%link', '<< Post Anterior', $in_same_term = true, $excluded_terms = '', $taxonomy = 'la-taxonomia-personalizada-asociada-a-tu-tipo-de-contenido'); ?>                    
            </div>

            <div class="next-post-link">
                <?php next_post_link('%link', 'Siguiente Post >>', $in_same_term = true, $excluded_terms = '', $taxonomy = 'la-taxonomia-personalizada-asociada-a-tu-tipo-de-contenido'); ?>                    
            </div> 
18 ago 2014 10:40:50
0

El parámetro $taxonomy para ambas funciones next_post_link y previous_post_link fue introducido en la versión 3.8 de WordPress.

Cuando el parámetro $in_same_term está establecido como verdadero (true), necesitas definir el parámetro $taxonomy con la taxonomía deseada. Por defecto, está configurado como category. Recuerda que post_format también es una taxonomía.

Ejemplo:

next_post_link( '%link', 'Siguiente post en la categoría', TRUE, ' ', 'post_format' );

Nota importante: no uses next_post ni previous_post. Estas funciones están obsoletas desde la versión 2.0.0 de WordPress. Ver wp-includes/deprecated.php#L121 y wp-includes/deprecated.php#L158

ACTUALIZACIÓN

Los enlaces de post individuales automáticamente navegarán entre posts del mismo tipo de contenido (post type), ya que se utiliza el tipo de contenido del post actual para recuperar los posts adyacentes. Revisa el código fuente de get_adjacent_post(), que es utilizado por los enlaces de siguiente y anterior post. Presta especial atención a la línea 1550 (actualmente para la versión 4.1)

1550    $where = apply_filters( "get_{$adjacent}_post_where", $wpdb->prepare( "WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = 'publish' $where", $current_post_date, $post->post_type ), $in_same_term, $excluded_terms );
10 ago 2014 18:52:55
1

Añade este código a tu archivo single-cpt.php.

<?php previous_post_link('%link', 'Anterior en CPT', TRUE) ?>
<?php next_post_link('%link', 'Siguiente en CPT', TRUE) ?>

Donde cpt es el nombre de tu tipo de entrada personalizado.

14 oct 2013 18:45:08
Comentarios

previous_post y next_post han quedado obsoletos desde la versión 2.0.0 que se lanzó en 2005

Pieter Goosen Pieter Goosen
10 ago 2014 18:39:58
3
-1

Prueba esto con miniatura:

<?php $prevPost = get_previous_post(); if($prevPost) { ?>
    <li class="previous">
    <?php $prevthumbnail = get_the_post_thumbnail($prevPost->ID, array(80,80) ); ?>
        <?php previous_post_link('%link', $prevthumbnail . '<strong>Anterior</strong> <span>%title</span>', TRUE); ?>
    </li>
<?php } $nextPost = get_next_post(); if($nextPost) { ?>
    <li class="next">
    <?php $nextthumbnail = get_the_post_thumbnail($nextPost->ID, array(80,80) ); ?>
        <?php next_post_link('%link', $nextthumbnail . '<strong>Siguiente</strong> <span>%title</span>', TRUE); ?>
    </li>
<?php } ?>
1 may 2014 11:24:24
Comentarios

Las respuestas solo con código son las peores. Intenta agregar alguna dirección o descripción editando tu respuesta. :)

Mayeenul Islam Mayeenul Islam
1 may 2014 12:12:18

Creo que no entendiste la pregunta aquí. El OP no preguntó por enlaces con miniaturas. Además, las respuestas que solo incluyen código no se consideran buenas respuestas.

Pieter Goosen Pieter Goosen
10 ago 2014 18:39:11

Gracias, eso me ayudó mucho. Con algunos ajustes de CSS terminé con una navegación bastante agradable. Configuré la navegación anterior/siguiente para que tengan una posición fija, mientras establecí posición absoluta para cada uno para que pudieran mostrarse en los lados izquierdo/derecho de la pantalla.

Adriano Monecchi Adriano Monecchi
20 abr 2017 22:27:09