<?php

/**
 * Display for Feed Custom Post Types
 *
 * @package   GCE
 * @author    Phil Derksen <*****@*****.**>, Nick Young <*****@*****.**>
 * @license   GPL-2.0+
 * @copyright 2014 Phil Derksen
 */
global $post;
$post_id = $post->ID;
// Clear the cache if the button was clicked to do so
if (isset($_GET['clear_cache']) && $_GET['clear_cache'] == 1) {
    gce_clear_cache($post_id);
}
// Load up all post meta data
$gce_feed_url = get_post_meta($post->ID, 'gce_feed_url', true);
$gce_date_format = get_post_meta($post->ID, 'gce_date_format', true);
$gce_time_format = get_post_meta($post->ID, 'gce_time_format', true);
$gce_cache = get_post_meta($post->ID, 'gce_cache', true);
$gce_multi_day_events = get_post_meta($post->ID, 'gce_multi_day_events', true);
$gce_display_mode = get_post_meta($post->ID, 'gce_display_mode', true);
$gce_search_query = get_post_meta($post->ID, 'gce_search_query', true);
$gce_expand_recurring = get_post_meta($post->ID, 'gce_expand_recurring', true);
$gce_paging = get_post_meta($post->ID, 'gce_paging', true);
$gce_events_per_page = get_post_meta($post->ID, 'gce_events_per_page', true);
$gce_per_page_num = get_post_meta($post->ID, 'gce_per_page_num', true);
$gce_list_start_offset_num = get_post_meta($post->ID, 'gce_list_start_offset_num', true);
$gce_list_start_offset_direction = get_post_meta($post->ID, 'gce_list_start_offset_direction', true);
$gce_feed_start = get_post_meta($post->ID, 'gce_feed_start', true);
/**
 * Function to clear cache if on the post listing page
 * 
 * @since 2.0.0
 */
function gce_clear_cache_link()
{
    if (isset($_REQUEST['clear_cache'])) {
        $post_id = absint($_REQUEST['clear_cache']);
        gce_clear_cache($post_id);
        settings_errors('gce-notices');
    }
}
Example #3
0
/**
 * Clear cache bulk action.
 *
 * @see gce_clear_cache_bulk_action_option()
 */
function gce_clear_cache_bulk_action()
{
    global $typenow;
    $post_type = $typenow;
    if ('gce_feed' == $post_type) {
        $send_back = remove_query_arg(array('cleared'), wp_get_referer());
        if (!$send_back) {
            $send_back = admin_url('edit.php?post_type=' . $post_type);
        }
        // Get the bulk action.
        $wp_list_table = _get_list_table('WP_Posts_List_Table');
        $action = $wp_list_table->current_action();
        if ($action == 'clear_cache') {
            // Security check (the referer is right).
            check_admin_referer('bulk-posts');
            // This is based on wp-admin/edit.php.
            $send_back = remove_query_arg(array('cleared', 'untrashed', 'deleted', 'ids'), $send_back);
            // Proceed if there are post ids selected.
            $post_ids = isset($_REQUEST['post']) ? array_map('intval', $_REQUEST['post']) : '';
            if ($post_ids) {
                // Add page num to query arg.
                $page_num = $wp_list_table->get_pagenum();
                $send_back = add_query_arg('paged', $page_num, $send_back);
                switch ($action) {
                    case 'clear_cache':
                        $cleared = 0;
                        foreach ($post_ids as $post_id) {
                            gce_clear_cache($post_id);
                            $cleared++;
                        }
                        $send_back = add_query_arg(array('cleared' => $cleared, 'ids' => join(',', $post_ids)), $send_back);
                        break;
                    default:
                        return;
                        break;
                }
                $send_back = remove_query_arg(array('action', 'tags_input', 'post_author', 'comment_status', 'ping_status', '_status', 'post', 'bulk_edit', 'post_view'), $send_back);
                wp_redirect($send_back);
                exit;
            }
        }
    }
}