PluginProbe
WebberZone Top 10 — Popular Posts / 4.5.1
WebberZone Top 10 — Popular Posts v4.5.1
4.5.1 4.5.0 4.4.3 4.4.2 4.4.1 4.4.0 4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 trunk 1.0 1.0.1 1.1 1.2 1.3 1.4 1.4.1 1.5 1.5.1 1.5.2 1.5.3 1.6 1.6.1 All 117 releases
← All changes | top-10.php +248 -349 1.24.5.1 View file →
@@ -1,349 +1,248 @@
1 -<?php
2 -/*
3 -Plugin Name: Top 10
4 -Version: 1.2
5 -Plugin URI: http://ajaydsouza.com/wordpress/plugins/top-10/
6 -Description: Count daily and total visits per post and display the most popular posts based on the number of views. Based on the plugin by <a href="http://weblogtoolscollection.com">Mark Ghosh</a>. <a href="options-general.php?page=tptn_options">Configure...</a>
7 -Author: Ajay D'Souza
8 -Author URI: http://ajaydsouza.com/
9 -*/
10 -
11 -//if (!defined('ABSPATH')) die("Aren't you supposed to come here via WP-Admin?");
12 -if (!function_exists('add_action')) {
13 - $wp_root = '../../..';
14 - if (file_exists($wp_root.'/wp-load.php')) {
15 - require_once($wp_root.'/wp-load.php');
16 - } else {
17 - require_once($wp_root.'/wp-config.php');
18 - }
19 -}
20 -
21 -$tptn_db_version = "2.0";
22 -
23 -function ald_tptn_init() {
24 - load_plugin_textdomain('myald_tptn_plugin', PLUGINDIR.'/'.dirname(plugin_basename(__FILE__)));
25 -}
26 -add_action('init', 'ald_tptn_init');
27 -
28 -define('ALD_TPTN_DIR', dirname(__FILE__));
29 -
30 -/*********************************************************************
31 -* Main Function (Do not edit) *
32 -********************************************************************/
33 -// Update post views
34 -add_action('wp_head','tptn_add_viewed_count');
35 -function tptn_add_viewed_count() {
36 - global $post, $wpdb, $single;
37 - $table_name = $wpdb->prefix . "top_ten";
38 - $tptn_settings = tptn_read_options();
39 -
40 - $current_user = wp_get_current_user();
41 - $post_author = ( $current_user->ID == $post->post_author ? true : false );
42 -
43 - if((is_single() || is_page())) {
44 - if (!(($post_author)&&(!$tptn_settings['track_authors']))) {
45 - $id = intval($post->ID);
46 - $output = '<script type="text/javascript" src="'.get_bloginfo('wpurl').'/wp-content/plugins/top-10/top-10-addcount.js.php?top_ten_id='.$id.'"></script>';
47 - echo $output;
48 - }
49 - }
50 -}
51 -
52 -// Function to add count to content
53 -function tptn_pc_content($content) {
54 - global $single, $post;
55 - $tptn_settings = tptn_read_options();
56 - $id = intval($post->ID);
57 -
58 - if(($single)&&($tptn_settings['add_to_content'])) {
59 - $output = '<script type="text/javascript" src="'.get_bloginfo('wpurl').'/wp-content/plugins/top-10/top-10-counter.js.php?top_ten_id='.$id.'"></script>';
60 - return $content.$output;
61 - } else {
62 - return $content;
63 - }
64 -}
65 -add_filter('the_content', 'tptn_pc_content');
66 -
67 -// Function to manually display count
68 -function echo_tptn_post_count() {
69 - global $post;
70 - $id = intval($post->ID);
71 -
72 - $output = '<script type="text/javascript" src="'.get_bloginfo('wpurl').'/wp-content/plugins/top-10/top-10-counter.js.php?top_ten_id='.$id.'"></script>';
73 - echo $output;
74 -}
75 -
76 -// Function to show popular posts
77 -function tptn_show_pop_posts() {
78 - global $wpdb, $siteurl, $tableposts, $id;
79 - $table_name = $wpdb->prefix . "top_ten";
80 - $tptn_settings = tptn_read_options();
81 - $limit = $tptn_settings['limit'];
82 -
83 - $sql = "SELECT postnumber, cntaccess , ID, post_type, post_status ";
84 - $sql .= "FROM $table_name INNER JOIN ". $wpdb->posts ." ON postnumber=ID " ;
85 - if ($tptn_settings['exclude_pages']) $sql .= "AND post_type = 'post' ";
86 - $sql .= "AND post_status = 'publish' ";
87 - $sql .= "ORDER BY cntaccess DESC LIMIT $limit";
88 -
89 - $results = $wpdb->get_results($sql);
90 -
91 - echo '<div id="crp_related">'.$tptn_settings['title'];
92 - echo '<ul>';
93 - if ($results) {
94 - foreach ($results as $result) {
95 - echo '<li><a href="'.get_permalink($result->postnumber).'">'.get_the_title($result->postnumber).'</a> ('.$result->cntaccess.')</li>';
96 - }
97 - }
98 - if ($tptn_settings['show_credit']) echo '<li>Popular posts by <a href="http://ajaydsouza.com/wordpress/plugins/top-10/">Top 10 plugin</a></li>';
99 - echo '</ul>';
100 - echo '</div>';
101 -}
102 -
103 -// Function to show daily popular posts
104 -function tptn_show_daily_pop_posts() {
105 - global $wpdb, $siteurl, $tableposts, $id;
106 - $table_name = $wpdb->prefix . "top_ten_daily";
107 - $tptn_settings = tptn_read_options();
108 - $limit = $tptn_settings['limit'];
109 -
110 - $sql = "SELECT postnumber, cntaccess , ID, post_type, post_status ";
111 - $sql .= "FROM $table_name INNER JOIN ". $wpdb->posts ." ON postnumber=ID " ;
112 - if ($tptn_settings['exclude_pages']) $sql .= "AND post_type = 'post' ";
113 - $sql .= "AND post_status = 'publish' ";
114 - $sql .= "ORDER BY cntaccess DESC LIMIT $limit";
115 -
116 - $results = $wpdb->get_results($sql);
117 -
118 - echo '<div id="crp_related">'.$tptn_settings['title_daily'];
119 - echo '<ul>';
120 - if ($results) {
121 - foreach ($results as $result) {
122 - echo '<li><a href="'.get_permalink($result->postnumber).'">'.get_the_title($result->postnumber).'</a> ('.$result->cntaccess.')</li>';
123 - }
124 - }
125 - if ($tptn_settings['show_credit']) echo '<li>Popular posts by <a href="http://ajaydsouza.com/wordpress/plugins/top-10/">Top 10 plugin</a></li>';
126 - echo '</ul>';
127 - echo '</div>';
128 -}
129 -
130 -// Default Options
131 -function tptn_default_options() {
132 - $title = __('<h3>Popular Posts</h3>','ald_tptn_plugin');
133 - $title_daily = __('<h3>Daily Popular</h3>','ald_tptn_plugin');
134 -
135 - $tptn_settings = Array (
136 - show_credit => true, // Add link to plugin page of my blog in top posts list
137 - add_to_content => true, // Add post count to content (only on single pages)
138 - exclude_pages => true, // Exclude Pages
139 - track_authors => false, // Track Authors visits
140 - pv_in_admin => true, // Add an extra column on edit posts/pages to display page views?
141 - count_disp_form => '(Visited %totalcount% times, %dailycount% visits today)', // Format to display the count
142 - title => $title, // Title of Popular Posts
143 - title_daily => $title_daily, // Title of Daily Popular
144 - limit => '10', // How many posts to display?
145 - );
146 - return $tptn_settings;
147 -}
148 -
149 -// Function to read options from the database
150 -function tptn_read_options() {
151 -
152 - // Upgrade table code
153 - global $tptn_db_version;
154 - $installed_ver = get_option( "tptn_db_version" );
155 -
156 - if( $installed_ver != $tptn_db_version ) tptn_install();
157 -
158 - $tptn_settings_changed = false;
159 -
160 - $defaults = tptn_default_options();
161 -
162 - $tptn_settings = array_map('stripslashes',(array)get_option('ald_tptn_settings'));
163 - unset($tptn_settings[0]); // produced by the (array) casting when there's nothing in the DB
164 -
165 - foreach ($defaults as $k=>$v) {
166 - if (!isset($tptn_settings[$k])) {
167 - $tptn_settings[$k] = $v;
168 - $tptn_settings_changed = true;
169 - }
170 - }
171 - if ($tptn_settings_changed == true)
172 - update_option('ald_tptn_settings', $tptn_settings);
173 -
174 - return $tptn_settings;
175 -
176 -}
177 -
178 -// Create tables to store pageviews
179 -function tptn_install() {
180 - global $wpdb;
181 - global $tptn_db_version;
182 -
183 - $table_name = $wpdb->prefix . "top_ten";
184 - $table_name_daily = $wpdb->prefix . "top_ten_daily";
185 -
186 - if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
187 -
188 - $sql = "CREATE TABLE " . $table_name . " (
189 - accessedid int NOT NULL AUTO_INCREMENT,
190 - postnumber int NOT NULL,
191 - cntaccess int NOT NULL,
192 - PRIMARY KEY (accessedid)
193 - );";
194 -
195 - require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
196 - dbDelta($sql);
197 -
198 - add_option("tptn_db_version", $tptn_db_version);
199 - }
200 -
201 - if($wpdb->get_var("show tables like '$table_name_daily'") != $table_name_daily) {
202 -
203 - $sql = "CREATE TABLE " . $table_name_daily . " (
204 - accessedid int NOT NULL AUTO_INCREMENT,
205 - postnumber int NOT NULL,
206 - cntaccess int NOT NULL,
207 - PRIMARY KEY (accessedid)
208 - );";
209 -
210 - require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
211 - dbDelta($sql);
212 -
213 - add_option("tptn_db_version", $tptn_db_version);
214 - }
215 -
216 - // Upgrade table code
217 - $installed_ver = get_option( "tptn_db_version" );
218 -
219 - if( $installed_ver != $tptn_db_version ) {
220 -
221 - $sql = "CREATE TABLE " . $table_name . " (
222 - accessedid int NOT NULL AUTO_INCREMENT,
223 - postnumber int NOT NULL,
224 - cntaccess int NOT NULL,
225 - PRIMARY KEY (accessedid)
226 - );";
227 -
228 - require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
229 - dbDelta($sql);
230 -
231 - $sql = "CREATE TABLE " . $table_name_daily . " (
232 - accessedid int NOT NULL AUTO_INCREMENT,
233 - postnumber int NOT NULL,
234 - cntaccess int NOT NULL,
235 - PRIMARY KEY (accessedid)
236 - );";
237 -
238 - require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
239 - dbDelta($sql);
240 -
241 - update_option( "tptn_db_version", $tptn_db_version );
242 - }
243 -
244 -}
245 -if (function_exists('register_activation_hook')) {
246 - register_activation_hook(__FILE__,'tptn_install');
247 - register_activation_hook(__FILE__, 'tptn_cron_install');
248 -}
249 -
250 -/* Schedule daily cron to clean up the Daily Table */
251 -add_action('tptn_cron_hook', 'tptn_daily_clean');
252 -function tptn_cron_install() {
253 - if (!wp_next_scheduled('tptn_cron_hook')) {
254 - wp_schedule_event(mktime(0,0), 'daily', 'tptn_cron_hook');
255 - }
256 -}
257 -function tptn_daily_clean() {
258 - global $wpdb;
259 - $table_name_daily = $wpdb->prefix . "table_name_daily";
260 -
261 - $sql = "TRUNCATE TABLE $table_name_daily";
262 - $wpdb->query($sql);
263 -}
264 -
265 -if (function_exists('register_deactivation_hook')) {
266 - register_deactivation_hook(__FILE__, 'tptn_cron_deinstall');
267 -}
268 -function tptn_cron_deinstall() {
269 - wp_clear_scheduled_hook('tptn_cron_hook');
270 -}
271 -
272 -// Create a WordPress Widget for Popular Posts
273 -function widget_tptn_pop($args) {
274 - global $wpdb, $siteurl, $tableposts, $id;
275 -
276 - extract($args); // extracts before_widget,before_title,after_title,after_widget
277 -
278 - $table_name = $wpdb->prefix . "top_ten";
279 - $tptn_settings = tptn_read_options();
280 - $limit = $tptn_settings['limit'];
281 -
282 - $sql = "SELECT postnumber, cntaccess , ID, post_type ";
283 - $sql .= "FROM $table_name INNER JOIN ". $wpdb->posts ." ON postnumber=ID " ;
284 - if ($tptn_settings['exclude_pages']) $sql .= "AND post_type = 'post' ";
285 - $sql .= "ORDER BY cntaccess DESC LIMIT $limit";
286 -
287 - $results = $wpdb->get_results($sql);
288 -
289 - $title = (($tptn_settings['title']) ? strip_tags($tptn_settings['title']) : __('Popular Posts'));
290 -
291 - echo $before_widget;
292 - echo $before_title.$title.$after_title;
293 - echo '<ul>';
294 - if ($results) {
295 - foreach ($results as $result) {
296 - echo '<li><a href="'.get_permalink($result->postnumber).'">'.get_the_title($result->postnumber).'</a> ('.$result->cntaccess.')</li>';
297 - }
298 - }
299 - if ($tptn_settings['show_credit']) echo '<li>Popular posts by <a href="http://ajaydsouza.com/wordpress/plugins/top-10/">Top 10 plugin</a></li>';
300 - echo '</ul>';
301 -
302 - echo $after_widget;
303 -}
304 -
305 -// Create a WordPress Widget for Daily Popular Posts
306 -function widget_tptn_pop_daily($args) {
307 - global $wpdb, $siteurl, $tableposts, $id;
308 -
309 - extract($args); // extracts before_widget,before_title,after_title,after_widget
310 -
311 - $table_name = $wpdb->prefix . "top_ten_daily";
312 - $tptn_settings = tptn_read_options();
313 - $limit = $tptn_settings['limit'];
314 -
315 - $sql = "SELECT postnumber, cntaccess , ID, post_type ";
316 - $sql .= "FROM $table_name INNER JOIN ". $wpdb->posts ." ON postnumber=ID " ;
317 - if ($tptn_settings['exclude_pages']) $sql .= "AND post_type = 'post' ";
318 - $sql .= "ORDER BY cntaccess DESC LIMIT $limit";
319 -
320 - $results = $wpdb->get_results($sql);
321 -
322 - $title = (($tptn_settings['title_daily']) ? strip_tags($tptn_settings['title_daily']) : __('Daily Popular'));
323 -
324 - echo $before_widget;
325 - echo $before_title.$title.$after_title;
326 - echo '<ul>';
327 - if ($results) {
328 - foreach ($results as $result) {
329 - echo '<li><a href="'.get_permalink($result->postnumber).'">'.get_the_title($result->postnumber).'</a> ('.$result->cntaccess.')</li>';
330 - }
331 - }
332 - if ($tptn_settings['show_credit']) echo '<li>Popular posts by <a href="http://ajaydsouza.com/wordpress/plugins/top-10/">Top 10 plugin</a></li>';
333 - echo '</ul>';
334 -
335 - echo $after_widget;
336 -}
337 -
338 -function init_tptn(){
339 - register_sidebar_widget(__('Popular Posts','ald_tptn_plugin'), 'widget_tptn_pop');
340 - register_sidebar_widget(__('Daily Popular','ald_tptn_plugin'), 'widget_tptn_pop_daily');
341 -}
342 -add_action("plugins_loaded", "init_tptn");
343 -
344 -// This function adds an Options page in WP Admin
345 -if (is_admin() || strstr($_SERVER['PHP_SELF'], 'wp-admin/')) {
346 - require_once(ALD_TPTN_DIR . "/admin.inc.php");
347 -}
348 -
349 -?>
1 +<?php
2 +/**
3 + * Top 10.
4 + *
5 + * Count daily and total visits per post and display the most popular posts based on the number of views.
6 + *
7 + * @package Top_Ten
8 + * @author Ajay D'Souza
9 + * @license GPL-2.0+
10 + * @link https://webberzone.com
11 + * @copyright 2008-2026 Ajay D'Souza
12 + *
13 + * @wordpress-plugin
14 + * Plugin Name: WebberZone Top 10
15 + * Plugin URI: https://webberzone.com/plugins/top-10/
16 + * Description: Count daily and total visits per post and display the most popular posts based on the number of views
17 + * Version: 4.5.1
18 + * Author: WebberZone
19 + * Author URI: https://webberzone.com
20 + * License: GPL-2.0+
21 + * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
22 + * Text Domain: top-10
23 + * Domain Path: /languages
24 + * GitHub Plugin URI: https://github.com/WebberZone/top-10/
25 + */
26 +
27 +namespace WebberZone\Top_Ten;
28 +
29 +if ( ! defined( 'WPINC' ) ) {
30 + die;
31 +}
32 +
33 +/**
34 + * Holds the version of Top 10.
35 + *
36 + * @since 3.1.0
37 + */
38 +if ( ! defined( 'TOP_TEN_VERSION' ) ) {
39 + define( 'TOP_TEN_VERSION', '4.5.1' );
40 +}
41 +
42 +/**
43 + * Holds the filesystem directory path (with trailing slash) for Top 10
44 +*
45 + * @since 2.3.0
46 + */
47 +if ( ! defined( 'TOP_TEN_PLUGIN_FILE' ) ) {
48 + define( 'TOP_TEN_PLUGIN_FILE', __FILE__ );
49 +}
50 +
51 +/**
52 + * Holds the filesystem directory path (with trailing slash) for Top 10
53 + *
54 + * @since 2.3.0
55 + */
56 +if ( ! defined( 'TOP_TEN_PLUGIN_DIR' ) ) {
57 + define( 'TOP_TEN_PLUGIN_DIR', plugin_dir_path( TOP_TEN_PLUGIN_FILE ) );
58 +}
59 +
60 +/**
61 + * Holds the filesystem directory path (with trailing slash) for Top 10
62 + *
63 + * @since 2.3.0
64 + */
65 +if ( ! defined( 'TOP_TEN_PLUGIN_URL' ) ) {
66 + define( 'TOP_TEN_PLUGIN_URL', plugin_dir_url( TOP_TEN_PLUGIN_FILE ) );
67 +}
68 +
69 +/**
70 + * Holds the default thumbnail URL for Top 10.
71 + *
72 + * @since 4.2.0
73 + */
74 +if ( ! defined( 'TOP_TEN_DEFAULT_THUMBNAIL_URL' ) ) {
75 + define( 'TOP_TEN_DEFAULT_THUMBNAIL_URL', TOP_TEN_PLUGIN_URL . 'default.png' );
76 +}
77 +
78 +/**
79 + * Number of days of data to be saved in the daily tables.
80 + *
81 + * @since 3.0.0
82 + */
83 +if ( ! defined( 'TOP_TEN_STORE_DATA' ) ) {
84 + define( 'TOP_TEN_STORE_DATA', 180 );
85 +}
86 +
87 +/**
88 + * Number of days of raw visit rows to retain in the visits log table.
89 + *
90 + * @since 4.3.0
91 + */
92 +if ( ! defined( 'TOP_TEN_LOG_STORE_DATA' ) ) {
93 + define( 'TOP_TEN_LOG_STORE_DATA', 30 );
94 +}
95 +
96 +if ( ! function_exists( __NAMESPACE__ . '\\tptn_deactivate_other_instances' ) ) {
97 + /**
98 + * Deactivate other instances of Top 10 when this plugin is activated.
99 + *
100 + * @param string $plugin The plugin being activated.
101 + * @param bool $network_wide Whether the plugin is being activated network-wide.
102 + */
103 + function tptn_deactivate_other_instances( $plugin, $network_wide = false ) {
104 + $free_plugin = 'top-10/top-10.php';
105 + $pro_plugin = 'top-10-pro/top-10.php';
106 +
107 + // Only proceed if one of our plugins is being activated.
108 + if ( ! in_array( $plugin, array( $free_plugin, $pro_plugin ), true ) ) {
109 + return;
110 + }
111 +
112 + $plugins_to_deactivate = array();
113 + $deactivated_plugin = '';
114 +
115 + // If pro is being activated, deactivate free.
116 + if ( $pro_plugin === $plugin ) {
117 + if ( is_plugin_active( $free_plugin ) || ( $network_wide && is_plugin_active_for_network( $free_plugin ) ) ) {
118 + $plugins_to_deactivate[] = $free_plugin;
119 + $deactivated_plugin = 'Top 10';
120 + }
121 + }
122 +
123 + // If free is being activated, deactivate pro.
124 + if ( $free_plugin === $plugin ) {
125 + if ( is_plugin_active( $pro_plugin ) || ( $network_wide && is_plugin_active_for_network( $pro_plugin ) ) ) {
126 + $plugins_to_deactivate[] = $pro_plugin;
127 + $deactivated_plugin = 'Top 10 Pro';
128 + }
129 + }
130 +
131 + if ( ! empty( $plugins_to_deactivate ) ) {
132 + deactivate_plugins( $plugins_to_deactivate, false, $network_wide );
133 + set_transient( 'tptn_deactivated_notice', $deactivated_plugin, 1 * HOUR_IN_SECONDS );
134 + }
135 + }
136 + add_action( 'activated_plugin', __NAMESPACE__ . '\\tptn_deactivate_other_instances', 10, 2 );
137 +}
138 +
139 +// Show admin notice about automatic deactivation.
140 +if ( ! has_action( 'admin_notices', __NAMESPACE__ . '\\tptn_show_deactivation_notice' ) ) {
141 + add_action(
142 + 'admin_notices',
143 + function () {
144 + $deactivated_plugin = get_transient( 'tptn_deactivated_notice' );
145 + if ( $deactivated_plugin ) {
146 + /* translators: %s: Name of the deactivated plugin */
147 + $message = sprintf( __( "Top 10 and Top 10 PRO should not be active at the same time. We've automatically deactivated %s.", 'top-10' ), $deactivated_plugin );
148 + ?>
149 + <div class="updated" style="border-left: 4px solid #ffba00;">
150 + <p><?php echo esc_html( $message ); ?></p>
151 + </div>
152 + <?php
153 + delete_transient( 'tptn_deactivated_notice' );
154 + }
155 + }
156 + );
157 +}
158 +
159 +/**
160 + * Global variable holding the current database version of Top 10
161 + *
162 + * @since 1.0
163 + *
164 + * @var string
165 + */
166 +global $tptn_db_version;
167 +$tptn_db_version = '7.3';
168 +
169 +// Load the Composer autoloader (includes the Freemius SDK).
170 +$composer_autoload = plugin_dir_path( __FILE__ ) . 'vendor/autoload.php';
171 +if ( file_exists( $composer_autoload ) ) {
172 + require_once $composer_autoload;
173 +}
174 +
175 +if ( ! function_exists( __NAMESPACE__ . '\\tptn_freemius' ) ) {
176 + // Load Freemius.
177 + require_once plugin_dir_path( __FILE__ ) . 'load-freemius.php';
178 +}
179 +
180 +// Load the autoloader.
181 +if ( ! function_exists( __NAMESPACE__ . '\\autoload' ) ) {
182 + require_once plugin_dir_path( __FILE__ ) . 'includes/autoloader.php';
183 +}
184 +
185 +// Load the CrawlerDetect library (bundled directly; not via the Composer autoloader).
186 +$tptn_crawler_detect_src = plugin_dir_path( __FILE__ ) . 'vendor/jaybizzle/crawler-detect/src/';
187 +if ( ! class_exists( '\Jaybizzle\CrawlerDetect\CrawlerDetect' ) && is_dir( $tptn_crawler_detect_src ) ) {
188 + require_once $tptn_crawler_detect_src . 'Fixtures/AbstractProvider.php';
189 + require_once $tptn_crawler_detect_src . 'Fixtures/Crawlers.php';
190 + require_once $tptn_crawler_detect_src . 'Fixtures/Exclusions.php';
191 + require_once $tptn_crawler_detect_src . 'Fixtures/Headers.php';
192 + require_once $tptn_crawler_detect_src . 'CrawlerDetect.php';
193 +}
194 +unset( $tptn_crawler_detect_src );
195 +
196 +
197 +if ( ! function_exists( __NAMESPACE__ . '\wz_top_ten' ) ) {
198 + /**
199 + * Returns the main instance of Top 10 to prevent the need to use globals.
200 + *
201 + * @since 4.0.6
202 + *
203 + * @return Main Main instance of the plugin.
204 + */
205 + function wz_top_ten(): Main {
206 + return Main::get_instance();
207 + }
208 +}
209 +
210 +if ( ! function_exists( __NAMESPACE__ . '\load_tptn' ) ) {
211 + /**
212 + * The main function responsible for returning the one true Top 10 instance to functions everywhere.
213 + *
214 + * @since 3.3.0
215 + */
216 + function load_tptn(): void {
217 + wz_top_ten();
218 + }
219 + add_action( 'plugins_loaded', __NAMESPACE__ . '\load_tptn' );
220 +}
221 +
222 +// Register the activation hook.
223 +register_activation_hook( __FILE__, __NAMESPACE__ . '\Admin\Activator::activation_hook' );
224 +
225 +// Register the deactivation hook.
226 +register_deactivation_hook( __FILE__, __NAMESPACE__ . '\Admin\Activator::deactivation_hook' );
227 +
228 +/*
229 + *----------------------------------------------------------------------------
230 + * Include files
231 + *----------------------------------------------------------------------------
232 + */
233 +if ( ! function_exists( 'tptn_get_settings' ) ) {
234 + require_once plugin_dir_path( __FILE__ ) . 'includes/options-api.php';
235 + require_once plugin_dir_path( __FILE__ ) . 'includes/wz-pluggables.php';
236 + require_once plugin_dir_path( __FILE__ ) . 'includes/class-top-ten-query.php';
237 + require_once plugin_dir_path( __FILE__ ) . 'includes/functions.php';
238 +}
239 +
240 +/**
241 + * Global variable holding the current settings for Top 10
242 + *
243 + * @since 1.9.3
244 + *
245 + * @var array
246 + */
247 +global $tptn_settings;
248 +$tptn_settings = tptn_get_settings();