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

2

¿Cómo puedo crear un enlace a una categoría, a la publicación más reciente / reciente?

Quiero mostrar la publicación real. No quiero mostrar la categoría con una publicación en ella. Voy a ser realmente tonto aquí ... :)

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

  

domain.com/category-name/index.php?newest

o

  

domain.com/category/category-name/index.php?latest&wpusers=happier-now

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

... y para referencia, aquí están los mejores enlaces relacionados que he visto (algunos son 100% en contexto pero están obsoletos, 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 la categoría

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

Pero, de nuevo, realmente parece que no es necesario que exista una forma de PHP, función o plantilla SOLO para hacerlo. Hay tantos elementos geniales? Esto y & que se agregaron elementos a la URL que debería haber uno que reciba la última publicación.

Un buen ejemplo es un enlace de lista de reproducción de YouTube. Carga el último video y permite todo tipo de capacidades de & altura & ancho & rel = 0.

Estoy un poco sorprendido de que esto no sea una función 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 Leer más, se dirigen a esa publicación.

Por lo tanto, puedo ver que los widgets pueden crear los enlaces. Estoy fuera de mi profundidad para descubrir cómo aprovechar el mismo concepto para crear un enlace sin mostrar todo.

    
pregunta Christopher Eller 04.01.2014 - 19:47

1 respuesta

8

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

Primero, conectamos una función a la acción parse_request , que se ejecuta cuando WordPress determina cómo establece las variables de consulta para la consulta principal.

El siguiente bit de código presupone que los enlaces permanentes están habilitados, y las URL de categoría tienen una base de categoría. En estas condiciones, se establece el category_name query var, por lo que podemos verificar si se trata de una solicitud de una categoría. Al mismo tiempo, también verificamos si se establece un latest GET var, por lo que juntos se activará este código cuando la URL parezca:

  

enlace

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

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

Este fragmento de código puede incluirse 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' );
    
respondido por el Milo 09.01.2014 - 03:34

Lea otras preguntas en las etiquetas