PluginProbe ʕ •ᴥ•ʔ
Post Views Counter / 1.0.6
Post Views Counter v1.0.6
1.7.13 1.7.12 1.7.11 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.2.0 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.2 1.3.2.1 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.7.0 1.7.1 1.7.10 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9
post-views-counter / includes / frontend.php
post-views-counter / includes Last commit date
columns.php 11 years ago counter.php 11 years ago cron.php 11 years ago frontend.php 11 years ago functions.php 11 years ago query.php 11 years ago settings.php 11 years ago update.php 11 years ago widgets.php 11 years ago
frontend.php
129 lines
1 <?php
2 if(!defined('ABSPATH')) exit;
3
4 new Post_Views_Counter_Frontend();
5
6 class Post_Views_Counter_Frontend {
7
8 public function __construct() {
9 // actions
10 add_action('wp_loaded', array(&$this, 'register_shortcode'));
11 add_action('wp_enqueue_scripts', array(&$this, 'frontend_scripts_styles'));
12
13 // filters
14 add_filter('the_content', array(&$this, 'add_post_views_count'));
15 add_filter('the_excerpt', array(&$this, 'remove_post_views_count'));
16 }
17
18 /**
19 * Register post-views shortcode function
20 */
21 public function register_shortcode() {
22 add_shortcode('post-views', array(&$this, 'post_views_shortcode'));
23 }
24
25 /**
26 * Post views shortcode function
27 */
28 public function post_views_shortcode($args) {
29 $defaults = array(
30 'id' => get_the_ID()
31 );
32
33 $args = shortcode_atts($defaults, $args);
34
35 return pvc_post_views($args['id'], false);
36 }
37
38 /**
39 * Add post views counter to content
40 */
41 public function add_post_views_count($content) {
42 if (is_singular() && in_array(get_post_type(), Post_Views_Counter()->get_attribute('options', 'display', 'post_types_display'), true)) {
43
44 // get groups to check it faster
45 $groups = Post_Views_Counter()->get_attribute('options', 'display', 'restrict_display', 'groups');
46
47 // whether to display views
48 if (is_user_logged_in()) {
49 // exclude logged in users?
50 if(in_array('users', $groups, true))
51 return $content;
52 // exclude specific roles?
53 elseif(in_array('roles', $groups, true) && Post_Views_Counter()->get_instance('counter')->is_user_roles_excluded(Post_Views_Counter()->get_attribute('options', 'display', 'restrict_display', 'roles')))
54 return $content;
55 }
56 // exclude guests?
57 elseif (in_array('guests', $groups, true))
58 return $content;
59
60 switch (Post_Views_Counter()->get_attribute('options', 'display', 'position')) {
61 case 'after':
62 return $content.'[post-views]';
63
64 case 'before':
65 return '[post-views]'.$content;
66
67 default:
68 case 'manual':
69 return $content;
70 }
71 }
72
73 return $content;
74 }
75
76 /**
77 * Remove post views shortcode from excerpt
78 */
79 public function remove_post_views_count($excerpt) {
80 remove_shortcode('post-views');
81 $excerpt = preg_replace ('/\[post-views[^\]]*\]/', '', $excerpt);
82 return $excerpt;
83 }
84
85 /**
86 * Enqueue frontend scripts and styles
87 */
88 public function frontend_scripts_styles() {
89 $post_types = Post_Views_Counter()->get_attribute('options', 'display', 'post_types_display');
90
91 // load dashicons
92 wp_enqueue_style('dashicons');
93
94 wp_register_style(
95 'post-views-counter-frontend',
96 POST_VIEWS_COUNTER_URL.'/css/frontend.css'
97 );
98
99 wp_enqueue_style('post-views-counter-frontend');
100
101 if (Post_Views_Counter()->get_attribute('options', 'general', 'counter_mode') === 'js') {
102 $post_types = Post_Views_Counter()->get_attribute('options', 'general', 'post_types_count');
103
104 // whether to count this post type or not
105 if (empty($post_types) || !is_singular($post_types))
106 return;
107
108 wp_register_script(
109 'post-views-counter-frontend',
110 POST_VIEWS_COUNTER_URL.'/js/frontend.js',
111 array('jquery')
112 );
113
114 wp_enqueue_script('post-views-counter-frontend');
115
116 wp_localize_script(
117 'post-views-counter-frontend',
118 'pvcArgsFrontend',
119 array(
120 'ajaxURL' => admin_url('admin-ajax.php'),
121 'postID' => get_the_ID(),
122 'nonce' => wp_create_nonce('pvc-check-post'),
123 'postType' => get_post_type()
124 )
125 );
126 }
127 }
128 }
129 ?>