Beispiel #1
0
            </div>
        </div>
    </div>
</section>
<!-- subheader close -->

<!-- content begin -->
<div id="content">
    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <ul class="blog-list">
                    <?php 
while (have_posts()) {
    the_post();
    $mem_date = mem_date_processing(get_post_meta($post->ID, '_mem_start_date', true), get_post_meta($post->ID, '_mem_end_date', true));
    if ($mem_date["is-ongoing"] === true) {
        get_template_part('content', get_post_format());
    }
    // End the loop.
}
?>

                </ul>

                <div class="text-center">
                    <ul class="pagination">
                        <?php 
echo archi_pagination();
?>
                    </ul>
Beispiel #2
0
    /**
     * Front-end display of widget.
     *
     * @see WP_Widget::widget()
     *
     * @param array $args     Widget arguments.
     * @param array $instance Saved values from database.
     */
    function widget($args, $instance)
    {
        // Check if there is a cached output
        $cache = wp_cache_get('widget_mem_events_list', 'widget');
        if (!is_array($cache)) {
            $cache = array();
        }
        if (!isset($args['widget_id'])) {
            $args['widget_id'] = $this->id;
        }
        if (isset($cache[$args['widget_id']])) {
            echo $cache[$args['widget_id']];
            return;
        }
        ob_start();
        extract($args);
        $title = !empty($instance['title']) ? $instance['title'] : __('Recent Posts');
        $title = apply_filters('widget_title', $title, $instance, $this->id_base);
        $number = !empty($instance['number']) ? absint($instance['number']) : 5;
        if (!$number) {
            $number = 5;
        }
        $age = !empty($instance['age']) ? absint($instance['age']) : 7;
        if (!$age) {
            $age = 7;
        }
        $show_date = isset($instance['show_date']) ? $instance['show_date'] : false;
        $show_past_events = isset($instance['show_past_events']) ? $instance['show_past_events'] : false;
        $post_types = !empty($instance['post_types']) ? $instance['post_types'] : 'post';
        $post_types = explode(',', $post_types);
        $mem_today = mem_date_of_today();
        // user defined age limit. default = 7 days.
        $mem_age = $age * DAY_IN_SECONDS;
        $mem_age_limit_unix = $mem_today["unix"] - $mem_age;
        $mem_age_limit_iso = date("Y-m-d", $mem_age_limit_unix);
        // arbitrary six months limit for filtering out old events.
        $mem_six_months = 180 * DAY_IN_SECONDS;
        $mem_180day_unix = $mem_today["unix"] - $mem_six_months;
        $mem_180day_iso = date("Y-m-d", $mem_180day_unix);
        $r = new WP_Query(apply_filters('widget_posts_args', array('post_type' => $post_types, 'posts_per_page' => $number, 'meta_key' => '_mem_start_date', 'meta_value' => $mem_180day_iso, 'meta_compare' => '>=', 'orderby' => 'meta_value', 'order' => 'DESC', 'no_found_rows' => true, 'post_status' => 'publish', 'ignore_sticky_posts' => true)));
        if ($r->have_posts()) {
            // initialize new array to store events
            $mem_event_list = array();
            ?>
					
					<?php 
            while ($r->have_posts()) {
                $r->the_post();
                ?>
					<?php 
                // add item to array.
                // we need:
                // 1. start date in iso-format
                // 2. date for display (date-num)
                // 3. title
                // 4. permalink
                $mem_event_date = mem_date_processing(get_post_meta(get_the_ID(), '_mem_start_date', true), get_post_meta(get_the_ID(), '_mem_end_date', true));
                $mem_event_list[] = array("start-unix" => $mem_event_date["start-unix"], "date-num" => $mem_event_date["date-num"], "title" => get_the_title(), "permalink" => get_permalink());
                // check for "Repeat" fields, add them to the list as unique events.
                $date_repeats = get_post_meta(get_the_ID(), '_mem_repeat_date', false);
                if (!empty($date_repeats)) {
                    foreach ($date_repeats as $date_repeat) {
                        // test if the item is fresh enough
                        if ($date_repeat >= $mem_age_limit_iso) {
                            // format date
                            $mem_repeat_date = mem_date_processing($date_repeat, '');
                            // add item to array
                            $mem_event_list[] = array("start-unix" => $mem_repeat_date["start-unix"], "date-num" => $mem_repeat_date["date-num"], "title" => get_the_title(), "permalink" => get_permalink());
                        }
                    }
                }
                // end testing for REPEATS
            }
            // Filtering the $mem_event_list
            // 1. filter the dates with $mem_age_limit_unix
            $mem_event_list = array_filter($mem_event_list, function ($i) use($mem_age_limit_unix) {
                return $i['start-unix'] >= $mem_age_limit_unix;
            });
            // 2. re-order the dates, based on start-unix
            usort($mem_event_list, "mem_custom_sort_iso");
            // 3. generate the frontend output
            if (!empty($mem_event_list)) {
                echo $before_widget;
                if ($title) {
                    echo $before_title . $title . $after_title;
                }
                echo '<ul>';
                foreach ($mem_event_list as $key => $item) {
                    ?>
											<li>
												<?php 
                    if ($show_date == true) {
                        echo '<span class="post-date">';
                        echo $mem_event_list[$key]["date-num"];
                        echo ' &ndash; </span>';
                    }
                    ?>
											<a href="<?php 
                    echo $mem_event_list[$key]["permalink"];
                    ?>
">	
													<?php 
                    echo $mem_event_list[$key]["title"];
                    ?>
</h4></a>
											</li>
													<?php 
                }
                echo '</ul>';
                echo $after_widget;
            }
            // Reset the global $the_post as this query will have stomped on it
            wp_reset_postdata();
        }
        $cache[$args['widget_id']] = ob_get_flush();
        wp_cache_set('widget_mem_events_list', $cache, 'widget');
    }