From cc00e05f447c91ba955c0d031fc6becc3b20028e Mon Sep 17 00:00:00 2001 From: Takuho Nakano Date: Sat, 31 Dec 2016 12:36:01 +0900 Subject: [PATCH] Add searchmeter_word table and enable recording search words --- admin.php | 74 ++++++++++++++++++++++++++++++++++++++++++++++++ search-meter.php | 23 +++++++++++++++ 2 files changed, 97 insertions(+) diff --git a/admin.php b/admin.php index 178150d..5377426 100644 --- a/admin.php +++ b/admin.php @@ -108,6 +108,7 @@ function tguy_sm_stats_css() { function tguy_sm_init() { tguy_sm_create_summary_table(); tguy_sm_create_recent_table(); + tguy_sm_create_word_table(); } function tguy_sm_create_summary_table() { @@ -148,6 +149,25 @@ function tguy_sm_create_recent_table() { } } +function tguy_sm_create_word_table() { +// Create the table if not already there. + global $wpdb; + $table_name = $wpdb->prefix . "searchmeter_word"; + if ($wpdb->get_var("show tables like '$table_name'") != $table_name) { + require_once(ABSPATH . '/wp-admin/includes/upgrade.php'); + $charset_collate = $wpdb->get_charset_collate(); + dbDelta(" + CREATE TABLE `{$table_name}` ( + `word` VARCHAR(50) NOT NULL, + `date` DATE NOT NULL, + `count` INT(11) NOT NULL, + PRIMARY KEY (`word`,`date`) + ) + {$charset_collate}; + "); + } +} + //////// Permissions @@ -231,6 +251,11 @@ function tguy_sm_summary_page() { "DELETE FROM `{$wpdb->prefix}searchmeter` WHERE `date` < DATE_SUB( CURDATE() , INTERVAL 30 DAY)"); echo "\n"; + + $result = $wpdb->query( + "DELETE FROM `{$wpdb->prefix}searchmeter_word` + WHERE `date` < DATE_SUB( CURDATE() , INTERVAL 30 DAY)"); + echo "\n"; ?>
@@ -267,6 +292,21 @@ function tguy_sm_summary_page() {
+

+
+

+ +
+
+

+ +
+
+

+ +
+
+

@@ -374,6 +414,40 @@ function tguy_sm_summary_table($days, $do_include_successes = true) { } } +function tguy_sm_summary_word_table($days) { + global $wpdb; + $results = $wpdb->get_results( + "SELECT `word`, + SUM( `count` ) AS countsum + FROM `{$wpdb->prefix}searchmeter_word` + WHERE DATE_SUB( CURDATE( ) , INTERVAL $days DAY ) <= `date` + GROUP BY `word` + ORDER BY countsum DESC, `word` ASC + LIMIT 20"); + if (count($results)) { + ?> + + + + + + + + + +
word) ?>countsum ?>
+

suppress_errors(); + $success = $wpdb->query($wpdb->prepare(" + INSERT INTO `{$wpdb->prefix}searchmeter_word` (`word`,`date`,`count`) + VALUES (%s, UTC_DATE(), 1)", + $word + )); + $wpdb->suppress_errors($suppress); + if (!$success) { + $success = $wpdb->query($wpdb->prepare(" + UPDATE `{$wpdb->prefix}searchmeter_word` SET + `count` = `count` + 1 + WHERE `word` = %s AND `date` = UTC_DATE()", + $word + )); + } + } } return $posts; }