function widget($args, $instance)
    {
        $cache = wp_cache_get('widget_nice_popular_articles', '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 = $instance['title'];
        $number = $instance['number'];
        $orderby = $instance['orderby'];
        if (isset($instance['hideviews'])) {
            $hideviews = $instance['hideviews'];
        }
        if (isset($instance['hidelikes'])) {
            $hidelikes = $instance['hidelikes'];
        }
        if (!isset($orderby) || $orderby == 'views') {
            $meta_key = '_pageview_count';
        } else {
            $meta_key = '_like_count';
        }
        if (!$number) {
            $number = 5;
        }
        ?>
			<?php 
        echo $before_widget;
        ?>
			<?php 
        if ($title) {
            echo $before_title . $title . $after_title;
        }
        ?>

			<ul class="clearfix">

					<?php 
        $query = new WP_Query();
        $query->query(array('post_type' => 'article', 'posts_per_page' => $number, 'caller_get_posts' => 1, 'meta_key' => $meta_key, 'orderby' => 'meta_value_num', 'order' => 'DESC'));
        ?>
					<?php 
        if ($query->have_posts()) {
            while ($query->have_posts()) {
                $query->the_post();
                ?>
					<li class="clearfix <?php 
                if (has_post_format('video')) {
                    ?>
format-video<?php 
                } else {
                    ?>
format-standard<?php 
                }
                ?>
">
						<a href="<?php 
                the_permalink();
                ?>
" rel="bookmark"><?php 
                the_title();
                ?>
</a>

							<?php 
                if (isset($hidelikes) || isset($hideviews) || !isset($hidelikes) && !isset($hideviews)) {
                    ?>
							<span class="meta">
								<?php 
                    if (!isset($hideviews) || !$hideviews) {
                        ?>
								<span class="nice-views"><i class="fa fa-bullseye"></i> <?php 
                        echo get_post_meta(get_the_ID(), '_pageview_count', true);
                        ?>
 </span>
								<?php 
                    }
                    ?>

								<?php 
                    if (!isset($hidelikes) || !$hidelikes) {
                        ?>
								<span class="nice-likes"><i class="fa fa-heart"></i> <span class="like-count"><?php 
                        echo nicethemes_likes_count();
                        ?>
</span></span>
								<?php 
                    }
                    ?>
							</span>
							<?php 
                }
                ?>
					</li>
					<?php 
            }
        }
        ?>

					<?php 
        wp_reset_query();
        ?>

				</ul>


			<?php 
        echo $after_widget;
        ?>
		<?php 
        $cache[$args['widget_id']] = ob_get_flush();
        wp_cache_set('widget_nice_popular_articles', $cache, 'widget');
    }
Example #2
0
 /**
  * nicethemes_likes_ajax()
  *
  * Handles the ajax request for the like functionality
  *
  * @since 1.0.0
  *
  */
 function nicethemes_likes_ajax()
 {
     check_ajax_referer('play-nice', 'nonce');
     if (!empty($_POST) && !empty($_POST['id'])) {
         if (nicethemes_likes_can($_POST['id'])) {
             $count_key = '_like_count';
             $count = nicethemes_likes_count($_POST['id']);
             if ($count == '') {
                 delete_post_meta($_POST['id'], $count_key);
                 add_post_meta($_POST['id'], $count_key, '1');
                 $count = 1;
             } else {
                 $count++;
                 update_post_meta($_POST['id'], $count_key, $count);
             }
             $ip_list = get_post_meta($_POST['id'], '_like_ip', true);
             $user_ip = nice_user_ip();
             if (count($ip_list) != 0 && is_array($ip_list)) {
                 if (!in_array($user_ip, $ip_list)) {
                     $ip_list[] = $user_ip;
                 }
                 update_post_meta($_POST['id'], '_like_ip', $ip_list);
             } else {
                 $ip_list = array();
                 $ip_list[] = $user_ip;
                 update_post_meta($_POST['id'], '_like_ip', $ip_list);
             }
             echo $count;
         }
     }
     die;
 }