Intereting Posts

RSS-лента предыдущих 24 часов сообщений?

Как создать фид, который является только предыдущими 24-часовыми сообщениями? или это возможно? есть ли плагины, которые предлагают функциональность?

Хорошо, дети, сегодня мы будем использовать пару потрясающих функций WordPress. Прежде всего, давайте получим этот настраиваемый канал, зарегистрированный с помощью 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 ); 

… где my_feed – это имя вашего фида, например example.com/feed/my_feed . Обязательно очистите свои правила перезаписи после того, как код будет на месте – просто сохраните свои настройки постоянной ссылки в администраторе.

Затем нам нужно переопределить запрос по умолчанию для нашего настраиваемого фида – мы будем использовать запрос даты, чтобы получить все сообщения за последние 24 часа:

 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( 'Ymd H:i', strtotime( '-24 hours' ) ), ]); } } add_action( 'pre_get_posts', 'wpse_226681_feed_query' );