// Custom Feed
function add_custom_rss_feed() {
add_feed('revive', 'custom_rss_feed_template');
}
add_action('init', 'add_custom_rss_feed');
function custom_rss_feed_template() {
get_template_part('rss', 'revive');
}
// Add a custom interval for 4.5 hours
function custom_cron_schedules($schedules) {
$schedules['four_half_hours'] = array(
'interval' => 16200, // 4.5 hours in seconds
'display' => __('Every 4.5 Hours')
);
return $schedules;
}
add_filter('cron_schedules', 'custom_cron_schedules');
// Schedule an event to refresh the custom RSS feed every 4.5 hours
if (!wp_next_scheduled('refresh_old_posts_feed')) {
wp_schedule_event(time(), 'four_half_hours', 'refresh_old_posts_feed');
} else {
$timestamp = wp_next_scheduled('refresh_old_posts_feed');
wp_unschedule_event($timestamp, 'refresh_old_posts_feed');
wp_schedule_event(time(), 'four_half_hours', 'refresh_old_posts_feed');
}
add_action('refresh_old_posts_feed', 'generate_old_posts_feed');
function generate_old_posts_feed() {
// Rotate the post IDs in the option
$stored_posts = get_option('last_3_posts');
if (!$stored_posts || count($stored_posts) < 3) {
// Initialize with 3 random posts if not already set
$args = array(
'post_type' => 'post',
'posts_per_page' => 3,
'orderby' => 'rand',
'date_query' => array(
'before' => date('Y-m-d H:i:s', strtotime('-1 month'))
)
);
$query = new WP_Query($args);
$stored_posts = wp_list_pluck($query->posts, 'ID');
update_option('last_3_posts', $stored_posts);
} else {
// Rotate the first post out and add a new one
array_shift($stored_posts);
$args = array(
'post_type' => 'post',
'posts_per_page' => 1,
'orderby' => 'rand',
'date_query' => array(
'before' => date('Y-m-d H:i:s', strtotime('-1 month'))
),
'post__not_in' => $stored_posts
);
$query = new WP_Query($args);
$new_post_id = $query->posts[0]->ID;
$stored_posts[] = $new_post_id;
update_option('last_3_posts', $stored_posts);
}
}
// Debugging function to log feed activity
function log_feed_activity($message) {
$log_file = ABSPATH . 'wp-content/debug.log';
$current_time = date('Y-m-d H:i:s');
file_put_contents($log_file, "$current_time - $message\n", FILE_APPEND);
}
// Include the last shared post title in the log
function log_last_shared_post($post_title) {
log_feed_activity("Generated feed content for post: $post_title");
}
cine Archives • Osito Barrigón