¿Fuente RSS de las últimas 24 horas de publicaciones?

2

¿Cómo puedo crear un feed que sea solo las publicaciones de 24 horas anteriores? ¿O es eso posible? ¿hay complementos que ofrecen la funcionalidad?

    
pregunta Phil 15.05.2016 - 15:57

1 respuesta

4

Muy bien, niños, vamos a aprovechar un par de increíbles funciones de WordPress hoy. Lo primero es lo primero, registremos la fuente personalizada con add_feed :

/**
 * Register "my_feed".
 */
function wpse_226681_register_feed() {
    // do_feed_rss() loads the default RSS template in WordPress
    add_feed( 'my_feed', 'do_feed_rss' );
}

add_action( 'init', 'wpse_226681_register_feed' );

/**
 * Handle content-type for "my_feed".
 */
function wpse_226282_feed_type( $type, $name ) {
    if ( $name === 'my_feed' )
        $type = feed_content_type( 'rss2' );

    return $type;
}

add_filter( 'feed_content_type', 'wpse_226282_feed_type', 10, 2 );

... donde my_feed es el nombre de tu feed, es decir, example.com/feed/my_feed . Asegúrese de vaciar sus reglas de reescritura una vez que el código esté en su lugar, simplemente vuelva a guardar sus configuraciones de enlace permanente en el administrador.

A continuación, debemos anular la consulta predeterminada para nuestro feed personalizado: utilizaremos una consulta de fecha para obtener todos los mensajes en las últimas 24 horas:

function wpse_226681_feed_query( $wp_query ) {
    if ( $wp_query->is_main_query() && $wp_query->is_feed( 'my_feed' ) ) {

        $wp_query->set( 'ignore_sticky_posts', true );
        $wp_query->set( 'posts_per_page', -1 );
        $wp_query->set( 'date_query', [
            'after' => date( 'Y-m-d H:i', strtotime( '-24 hours' ) ),
        ]);

    }
}

add_action( 'pre_get_posts', 'wpse_226681_feed_query' );
    
respondido por el TheDeadMedic 15.05.2016 - 16:21

Lea otras preguntas en las etiquetas