$count = get_post_meta("706", 'counter', true );
if(!is_admin() && !current_user_can('administrator')){
$count++;
update_post_meta("706", 'counter', $count );
}

'counter' adalah nama bidang.
*Saya menggunakan if(!is_admin) sehingga tidak akan menghitung pengujian back/front end saya.
Masalah utama saya adalah bahwa penghitung tidak konsisten, dan meskipun untuk sebagian besar waktu menghitung dalam langkah 1, kadang-kadang melompat dan menghitung 2, 3 atau 4 pada satu halaman memuat.
Ini adalah tautan ke halaman pengujian
saya Apa yang kulewatkan di sini?

0
fafchook 4 April 2021, 21:47

2 jawaban

Jawaban Terbaik

Seperti yang saya katakan, saya selalu menggunakan kait tindakan wp_head dan berfungsi dengan baik!

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!
1
Ruvee 4 April 2021, 21:45

Biasanya, Anda ingin membungkus semuanya di dalam kait yang tepat, seperti:

// 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 );
});

Tentang cara menggunakan kait, lihat:

Untuk memeriksa hak pengguna, lihat:

1
Dharman 4 April 2021, 20:53