嗨,我這里有明顯正確的片段,但我認為它不起作用。在我的情況下,我需要每 10 秒洗掉一次視圖,但在更新頁面時,它們會不斷添加視圖。有誰知道出了什么問題?
add_action('woocommerce_share','setPostViews',70);
function setPostViews() {
global $product;
$product_id=$product->id;
$count_key = 'post_views_count';
$count = get_post_meta($product_id, $count_key, true);
if($count==''){
$count = 0;
delete_post_meta($product_id, $count_key);
add_post_meta($product_id, $count_key, '0');
}else{
$count ;
update_post_meta($product_id, $count_key, $count);
}
echo 'view::'.$count;
}
function hits_set_zero_schedule() {
if ( ! wp_next_scheduled( 'hits_set_to_zero') )
wp_schedule_event( time(), '10sec', 'hits_set_zero' );
}
add_action( 'wp', 'hits_set_zero_schedule' );
function hits_set_zero_func() {
global $product;
$product_id=$product->id;
delete_post_meta( $product_id, 'post_views_count', true );
}
add_action( 'hits_set_zero', 'hits_set_zero_func' );
function custom_cron_job_recurrence( $schedules )
{
if(!isset($schedules['10sec']))
{
$schedules['10sec'] = array(
'display' => __( 'Every 10 Seconds', 'twentyfifteen' ),
'interval' => 10,
);
}
if(!isset($schedules['15sec']))
{
$schedules['15sec'] = array(
'display' => __( 'Every 15 Seconds', 'twentyfifteen' ),
'interval' => 15,
);
}
return $schedules;
}
add_filter( ‘cron_schedules’, ‘custom_cron_job_recurrence’ );
結果報
echo 'view::'.$count;
例如,視圖 :: 22 和更新視圖 :: 23 等等,但我希望結果每 10 秒回傳 1(或為空,但函式將 1 設定為最小值)。那么這在我的網站上不起作用。
uj5u.com熱心網友回復:
首先,WordPress 的 cron 不會像您預期的那樣作業,因為它依賴于您的網站有一個請求才能被執行,這意味著如果您在 10 分鐘內沒有訪問,即使每分鐘安排一次 CRON 作業也是如此不會被執行。
如果您需要更可靠的東西,您可以隨時設定一個更可靠的 Linux cron 作業。
WP-Cron 不像系統 cron 那樣持續運行;它僅在頁面加載時觸發。
您可以隨時使用wp cli來測驗您的玉米是否按預期執行wp cron event run --due-now
詳情:https : //developer.wordpress.org/cli/commands/cron/event/run/
參考:https : //developer.wordpress.org/plugins/cron/
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/365240.html
標籤:php WordPress的
上一篇:日歷中缺少月份
