2017-08-19 11 views
1

私は投稿機能を作成しました。しかし、私は問題があります。私の機能は、ページの更新ごとに2回カウントされます。 0,2,4,6,8 ...あらかじめありがとうございます。Wordpress投稿数は2回カウントされます

私のfunctions.php

function getPostViews($postID){ 
    $count_key = 'post_views_count'; 
    $count = get_post_meta($postID, $count_key, true); 
    if($count==''){ 
     delete_post_meta($postID, $count_key); 
     add_post_meta($postID, $count_key, '0'); 
     return "0 View"; 
    } 
    return $count; 
} 

function setPostViews($postID) { 
    $count_key = 'post_views_count'; 
    $count = get_post_meta($postID, $count_key, true); 
    if($count==''){ 
     $count = 0; 
     delete_post_meta($postID, $count_key); 
     add_post_meta($postID, $count_key, '0'); 
    }else{ 
     $count++; 
     update_post_meta($postID, $count_key, $count); 
    } 
} 


add_filter('manage_posts_columns', 'posts_column_views'); 
add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2); 
function posts_column_views($defaults){ 
    $defaults['post_views'] = 'Views'; 
    return $defaults; 
} 
function posts_custom_column_views($column_name, $id){ 
if($column_name === 'post_views'){ 
     echo getPostViews(get_the_ID()); 
    } 
} 

マイsingle.php:

get_header(); 
if(function_exists('getPostViews')) { echo getPostViews(get_the_ID()); } 

while (have_posts()) : the_post(); 

if(function_exists('setPostViews')) { setPostViews(get_the_ID()); }  

the_content(); 

endwhile; 

get_footer(); 

私は私のsingle.phpは二回ループすると思います。私はそれがあなたの人に役立つでしょう。

答えて

0

またパスが設定されていなかったので、この行は、あなたのheader.phpに存在しない、クロムが実際にヒットしようとすることを確認し、余分な景色

remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0); 

を追加するプリフェッチの問題を取り除くために、あなたのfunctions.phpに次の行を追加します。ショートカットアイコンを取得するために同じページをもう一度表示します。

<link rel="shortcut icon" href="" /> 

別の解決策

(このタグwp_reset_queryと、ちょうどそれらのループクエリが終わる時点で、すべてのクエリをリセット)。

+0

ありがとうございました。私は両方を試みたが、まだ動作していない。私はこのようなカスタムCSSを作成しました: wp_add_inline_style($ handle、$ custom_css); \t この行はエラーを引き起こしています。 – bilimokur

+0

このタグwp_reset_query()を使用して、ループするクエリが終了する時点ですべてのクエリをリセットします。 –