Enlace siguiente y anterior en tipo de entrada personalizada dentro del mismo término de taxonomía
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.

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>

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 );

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 } ?>

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

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.

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.
