Wordpress插件在首页上启动了两次,但在管理员上启动了一次



我正在开发一个插件,用于统计用户访问量并保存IP、日期和访问次数。在数据库中有id(big-int(、IP(str(、访问量(int(和日期(date(。我在插件主文件中的代码是:

if (is_admin()){
include WPS_INC . 'back-end.php';
}else{
include WPS_INC . 'front-end.php';
do_action('wps_update_db');
}

front-end.php 中的代码

function wps_user_visits_count(){
global $wpdb;
$tp = $wpdb->prefix;
$today = date('Y-m-d');
$ip = intval($_SERVER['SERVER_ADDR']);
$is_user_visited_site_today = $wpdb->get_var("SELECT `id`
FROM `{$tp}wps_user_visits` 
WHERE `date` = '{$today}' AND `ip` = {$ip}");
if (empty($is_user_visited_site_today)){
$wpdb->insert($tp . 'wps_user_visits',
array(
'ip' => $ip,
'date' => $today
),
array(
'%d','%s'
));
}else{
$wpdb->query("UPDATE `{$tp}wps_user_visits`
SET `visits` = `visits` + 1
WHERE `id` = {$is_user_visited_site_today}");
}
}
add_action('wps_update_db','wps_user_visits_count');

并且它将在DB中增加2次访问而不是1次。例如,在这行SET `visits` = `visits` + 1中,如果我将1更改为3,它将添加6次访问,而不是3次。

我该如何解决这个问题?

我也使用$wpdb->update。没有变化。

问题是NOT代码。

问题出在Wampserver上。

因此,如果您使用的是wampserver,请备份数据库和www文件夹,然后使用REVO UNINSTALLER删除wampserver。使用此程序进行卸载非常重要。

在卸载的第一步之后,您应该使用Revo卸载程序删除所有遗留的内容。

在那之后,您可以轻松地安装wampserver,您就可以开始了。

我应该说我也在使用虚拟主机。所以,如果你使用它,我的答案可能会对你有所帮助

如果您正在使用另一个本地主机程序,如XAMP和Laragon,请尝试此解决方案。

最新更新