2017-08-19 1 views
1

J'ai créé une fonction de vue de publication. Mais j'ai un problème. Ma fonction compte deux fois par actualisation de page. 0,2,4,6,8 ... merci d'avance.Les vues de poteaux Wordpress comptent deux fois

Mon 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()); 
    } 
} 

Mon 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(); 

Je pense que mon single.php boucles deux fois. Mon be ça vous aide les gars.

Répondre

0

Ajoutez cette ligne dans votre functions.php pour éliminer les problèmes avec préchargement ajouter des vues supplémentaires

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

Assurez-vous aussi cette ligne n'existe pas dans votre header.php Comme aucun chemin a été défini, Chrome serait effectivement essayer de frapper la même page une deuxième fois afin d'obtenir l'icône de raccourci.

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

Une autre solution

réinitialiser toutes vos questions juste au moment où ces requêtes looping finissent avec cette balise wp_reset_query();

+0

Merci de votre réponse. J'ai essayé les deux mais ne fonctionne toujours pas. J'ai créé des CSS personnalisés comme ceci: wp_add_inline_style ($ handle, $ custom_css); \t Cette ligne provoque une erreur. – bilimokur

+0

réinitialiser toutes vos requêtes juste au point où ces requêtes en boucle se terminent, avec cette balise wp_reset_query(); –