php 更多信息RSS(feed)черезравныеуказанныепромежуткивремени
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 更多信息RSS(feed)черезравныеуказанныепромежуткивремени相关的知识,希望对你有一定的参考价值。
<?php
/**
* Изменяет порядок вывода постов в ленте через равные промежутки времени
*
* @param WP_Query $query
*/
function change_rrs_posts_date( $query ) {
// Период обновления постов в ленте - 1 день
$period = 24 * HOUR_IN_SECONDS;
// Название временной опции
$name_transient = 'feed_id_posts';
// Вносим изменения только в обычную RSS ленту
if ( isset( $query->query['feed'] ) && $query->query['feed'] == 'feed' && $query->is_main_query() ) {
// Получаем ID постов
$id_posts = get_transient( $name_transient );
if ( $id_posts ) {
// Если ID постов есть - указываем вывести их
$query->set( 'post__in', $id_posts );
$query->set( 'orderby', 'post__in' );
} else {
// Если ID постов нет - пытаемся получить их
// Получаем посты рандомно в количестве, указанным в админке для RSS ленты
$posts = get_posts( [
'numberposts' => get_option( 'posts_per_rss' ),
'orderby' => 'rand',
] );
// Если посты нашлись
if ( $posts ) {
// сохраняем во временную опцию их ID
$id_posts = wp_list_pluck( $posts, 'ID' );
set_transient( $name_transient, $id_posts, $period );
// Указываем вывести их
$query->set( 'post__in', $id_posts );
$query->set( 'orderby', 'post__in' );
}
}
}
}
add_action( 'pre_get_posts', 'change_rrs_posts_date' );
以上是关于php 更多信息RSS(feed)черезравныеуказанныепромежуткивремени的主要内容,如果未能解决你的问题,请参考以下文章
php преобразуетчисловмассив
php Добравлениеколичестватовароввкорзине
php ПреобразоватьIPвчисло
php Авторизация(черезсессиюиликуки)
php Отключениефильтразагрузчикафайлов
php Найтивтороеповеличинезначение