Wordpress如何添加页面计数器
Wordpress how to add a page counter
我正在使用自定义数字字段(由 Jet 引擎插件生成)来跟踪页面的加载次数。
在我的 functions.php
文件中,我正在使用此代码:
$count = get_post_meta("706", 'counter', true );
if(!is_admin() && !current_user_can('administrator')){
$count++;
update_post_meta("706", 'counter', $count );
}
'counter'是字段名。
我正在使用 if(!is_admin)
所以它不会计算我的后端测试。
我的主要问题是计数器不一致,虽然大多数时候它以 1
的步长计数,但有时会跳过并计数 2
、3
或 4
在单个页面加载时。
这是 link 我的测试页:
https://oferziv.com/ofer/test/test3/
我在这里错过了什么?
通常,您需要将所有内容包裹在适当的钩子中,如下所示:
// Runs on every page request after we have a valid user.
add_action('init', function () {
// Return early if we're in the backend...
if (is_admin()) {
return;
}
// ...or the current user has admin capabilities
if (current_user_can('activate_plugins')) {
return;
}
// Otherwise, update counter
$count = get_post_meta("706", 'counter', true );
$count++;
update_post_meta("706", 'counter', $count );
});
关于hooks的使用方法见:
- https://developer.wordpress.org/plugins/hooks/
- https://codex.wordpress.org/Plugin_API/Action_Reference
要检查用户权限,请参阅:
就像我说的,我总是使用 wp_head
动作钩子,它工作得很好!
function my_counter_function()
{
if (is_admin() || current_user_can('activate_plugins')) return;
$counter = get_post_meta("706", 'counter', true);
if (empty($counter)) {
$counter = 1;
update_post_meta("706", 'counter', $counter);
} else {
$counter++;
update_post_meta("706", 'counter', $counter);
}
}
add_action('wp_head', 'my_counter_function'); // This is the action hook i was talking about!
我正在使用自定义数字字段(由 Jet 引擎插件生成)来跟踪页面的加载次数。
在我的 functions.php
文件中,我正在使用此代码:
$count = get_post_meta("706", 'counter', true );
if(!is_admin() && !current_user_can('administrator')){
$count++;
update_post_meta("706", 'counter', $count );
}
'counter'是字段名。
我正在使用 if(!is_admin)
所以它不会计算我的后端测试。
我的主要问题是计数器不一致,虽然大多数时候它以 1
的步长计数,但有时会跳过并计数 2
、3
或 4
在单个页面加载时。
这是 link 我的测试页:
https://oferziv.com/ofer/test/test3/
我在这里错过了什么?
通常,您需要将所有内容包裹在适当的钩子中,如下所示:
// Runs on every page request after we have a valid user.
add_action('init', function () {
// Return early if we're in the backend...
if (is_admin()) {
return;
}
// ...or the current user has admin capabilities
if (current_user_can('activate_plugins')) {
return;
}
// Otherwise, update counter
$count = get_post_meta("706", 'counter', true );
$count++;
update_post_meta("706", 'counter', $count );
});
关于hooks的使用方法见:
- https://developer.wordpress.org/plugins/hooks/
- https://codex.wordpress.org/Plugin_API/Action_Reference
要检查用户权限,请参阅:
就像我说的,我总是使用 wp_head
动作钩子,它工作得很好!
function my_counter_function()
{
if (is_admin() || current_user_can('activate_plugins')) return;
$counter = get_post_meta("706", 'counter', true);
if (empty($counter)) {
$counter = 1;
update_post_meta("706", 'counter', $counter);
} else {
$counter++;
update_post_meta("706", 'counter', $counter);
}
}
add_action('wp_head', 'my_counter_function'); // This is the action hook i was talking about!