¿Cómo puedo enlazar a la publicación más reciente en una categoría?

4 ene 2014, 20:47:10
Vistas: 13.9K
Votos: 5

¿Cómo puedo crear un enlace a una categoría--específicamente a su publicación más reciente?

Quiero mostrar el post real. No quiero mostrar la categoría con un listado de publicaciones. Voy a sonar un poco tonto aquí... :)

Pero en mi imaginación a veces salvaje e ilimitada, algo como esto debería estar disponible:

dominio.com/nombre-categoria/index.php?newest

o

dominio.com/categoria/nombre-categoria/index.php?latest&wpusers=mas-feliz-ahora

He buscado y hay muchas soluciones a nivel PHP. Y este sitio no me permite publicar más de dos enlaces aquí, así que lo siento por la limitación.

...y como referencia, estos son los mejores enlaces relacionados que encontré (algunos están 100% en contexto pero son antiguos, así que no sé si siguen siendo efectivos con WordPress):

Resuelto

Enlace a la publicación más reciente en una categoría?

Enlace a la última publicación en categoría

Tenía unos diez enlaces más relevantes...

Pero de nuevo, realmente parece que no debería haber SOLO una forma a nivel de PHP, funciones o plantillas para hacer esto. Hay tantos elementos geniales como ?esto y &aquello añadidos a la URL que debería haber uno que obtenga la publicación más reciente.

Un buen ejemplo es un enlace de lista de reproducción de YouTube. Carga el último video y permite todo tipo de opciones como &height &width &rel=0.

Estoy un poco sorprendido de que esto no sea una característica principal de WordPress.

Ahora mismo tengo varias variaciones de widgets que pueden mostrar una publicación reciente o destacada en la página principal con un extracto y una imagen destacada. Cuando alguien hace clic en el título, la imagen destacada o en Leer más, son llevados a esa publicación.

Así que veo que los widgets pueden crear los enlaces--simplemente estoy fuera de mi alcance para descubrir cómo aprovechar el mismo concepto para crear un enlace sin mostrar todo.

1
Comentarios

Deberías publicar tu solución como una respuesta

Pieter Goosen Pieter Goosen
20 may 2014 17:54:03
Todas las respuestas a la pregunta 1
0
11

No está integrado en el núcleo, pero ciertamente es posible agregarlo, sin embargo, no consideraría una buena idea tener una sola publicación disponible en múltiples URL, por lo que probablemente lo mejor sea un redireccionamiento. Por supuesto, requerirá un poco de PHP, ya que WordPress no funciona con magia o fuerza de voluntad.

Primero, enganchamos una función a la acción parse_request, que se ejecuta cuando WordPress está determinando cómo establecer las variables de consulta para la consulta principal.

El siguiente fragmento de código asume que los permalinks bonitos están habilitados y que las URL de categoría tienen una base de categoría. Bajo estas condiciones, la variable de consulta category_name está configurada, por lo que podemos verificar si se trata de una solicitud para una categoría. Al mismo tiempo, también verificamos si se establece una variable GET latest, por lo que juntos este código se activará cuando una URL se vea así:

http://example.com/category/some-category/?latest

Si se cumplen esas condiciones, consultamos una sola publicación en el nombre de la categoría solicitada, a través de WP_Query, que por defecto nos dará la publicación más reciente en esa categoría.

Si se encuentra una publicación, redirigimos a la URL de esa publicación mediante wp_redirect.

Este fragmento de código puede ir en el archivo functions.php de nuestro tema:

function wpa_latest_in_category_redirect( $request ){
    if( isset( $_GET['latest'] )
        && isset( $request->query_vars['category_name'] ) ){

        $latest = new WP_Query( array(
            'category_name' => $request->query_vars['category_name'],
            'posts_per_page' => 1
        ) );
        if( $latest->have_posts() ){
            wp_redirect( get_permalink( $latest->post->ID ) );
            exit;
        }

    }
}
add_action( 'parse_request', 'wpa_latest_in_category_redirect' );
9 ene 2014 04:34:45