X

Cum să urmăriți vizualizările postărilor fără un plugin folosind Post Meta

Fragmente de IsItWP

Căutați o modalitate de a urmări vizualizările postărilor fără un plugin, folosind meta-ul postării? Deși probabil există un plugin pentru asta, am creat o scurtă secvență de cod pe care o puteți folosi pentru a urmări vizualizările postărilor fără un plugin, folosind meta-ul postării în WordPress.

Instrucțiuni:

Adăugați acest cod în fișierul functions.php al temei dvs. sau într-un plugin specific site-ului:

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.' Views';
}
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);
    }
}

// Remove issues with prefetching adding extra views
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0); 

Opțional, adăugați și acest cod la o coloană în administratorul WordPress care afișează vizualizările postărilor:

// Add to a column in WP-Admin
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());
    }
}

Această parte a codului de urmărire a vizualizărilor va seta numărul de vizualizări ale postării. Plasați acest cod mai jos, în fișierul single.php, în interiorul buclei WordPress.

<?php
          setPostViews(get_the_ID());
?>

Notă despre fragment caching: Dacă utilizați un plugin de caching precum W3 Total Cache, metoda de mai sus pentru setarea vizualizărilor nu va funcționa, deoarece funcția setPostViews() nu va fi rulată niciodată. Cu toate acestea, W3 Total Cache are o funcție numită fragment caching. În loc de cele de mai sus, folosiți următoarele pentru ca setPostViews() să ruleze corect și să urmărească toate vizualizările postărilor dvs., chiar și atunci când aveți caching activat.

<!-- mfunc setPostViews(get_the_ID()); --><!-- /mfunc -->

Codul de mai jos este opțional. Folosiți acest cod dacă doriți să afișați numărul de vizualizări în cadrul postărilor dvs. Plasați acest cod în interiorul buclei.

<?php 
          echo getPostViews(get_the_ID());
?>

Notă: Dacă este prima dată când adăugați secvențe de cod în WordPress, consultați ghidul nostru despre cum să copiați / lipiți corect secvențe de cod în WordPress, pentru a nu vă defecta accidental site-ul.

Dacă v-a plăcut acest fragment de cod, vă rugăm să consultați și celelalte articole de pe site, cum ar fi: cele mai bune 10 pluginuri de testimoniale WordPress și cum să configurați urmărirea autorilor în WordPress cu Google Analytics.

Comentarii   Lasă un răspuns

  1. Salut,

    Pot să fac un număr de vizualizări false + numărul real?

    Înseamnă că pot seta valoarea de pornire manual (deoarece vreau ca noul meu post publicat să afișeze o valoare precum 3.429 vizualizări în primul minut), astfel încât postarea mea să pară că are un număr mare de vizualizări, desigur, combinat și cu numărul real.

    Dacă da, unde să setez numărul fals de vizualizări pe baza codului?

  2. Care ar fi cheia meta pentru a o apela într-o interogare?

    1. ‘post_views_count’ este cheia meta.

  3. Salut, este posibil cumva ca numărul de vizualizări să fie afișat doar dacă este mai mare de 1000?

    1. Ai putea folosi acest cod la afișarea numărului de comentarii:

      if (getPostViews(get_the_ID()) >= 1000) { echo getPostViews(get_the_ID()); }

  4. Există o modalitate de a exclude vizualizările de la administrator din numărătoare?

    1. Ați putea dori să folosiți ceva de genul acestui cod pentru a număra vizualizările condiționat: https://www.isitwp.com/check-if-user-is-logged-in/

  5. Salut Debjit Saha, nu pot găsi folderul single.php în șablonul meu, unde ar trebui să lipesc codul?

    1. Bucla principală pentru postările unice ar putea fi într-un alt fișier șablon. S-ar putea să doriți să verificați un fișier post.php sau un fișier cu nume similar.

  6. Vă mulțumesc pentru acest cod. A funcționat perfect.

  7. Fragment drăguț. Cum pot reseta numărătorile și să încep să număr din nou?

    1. Dacă cunoașteți ID-ul postărilor pe care le doriți, atunci acest lucru ar trebui să funcționeze.

      UPDATE yourDatabaseName.wp_postmeta set meta_value = 0 where meta_key = ‘post_views_count’ and post_id = 1934

  8. Salut, foarte bun articolul tău.

    Întrebarea mea este cum să aduc datele din Google Analytics pentru a afișa numărul de vizualizări ale Postărilor și Paginilor?

    Aveți o postare sau un link despre cum să implementați acest lucru?

    1. Din păcate, nu avem o recomandare actuală pentru exact acest lucru. Acestea fiind spuse, ați putea dori să consultați: https://www.monsterinsights.com/how-to-check-stats-for-individual-wordpress-posts-and-pages/

  9. Există vreun plugin Google Analytics care poate extrage datele de vizualizare și le poate afișa în WordPress?

    1. Sunt o mulțime… Puteți consulta lista noastră completă de cele mai bune pluginuri Google Analytics.

  10. Codurile nu funcționează pentru mine. Am un subiect bbpress, adică tipul postării este „topic”. Dar când am verificat, meta_key se generează în backend. Dar valorile meta nu se actualizează la fiecare vizită.

  11. Articole grozave, funcționează bine pe pagina mea întrebarea mea este, numărătoarea va începe doar după implementarea acelui cod?

    deoarece toate paginile mele vechi arată 0 sau 1 vizualizări, deși de fapt au deja mii de vizualizări.

    1. Da, numărătoarea nu începe decât după ce pluginul este activ. Orice vizualizări anterioare nu au fost înregistrate de acest plugin.

  12. Mulțumesc mult – funcționează excelent!

    Am ‘îmbunătățit’ ușor funcția get_post_views, astfel încât să returneze textul corect în funcție de numărul de vizualizări. Iată versiunea mea:

    function get_post_views($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 Views”; } if ($count==’1′) { return “1 View”; } return $count.’ Views’; }

    Poate îți place să adopți această versiune.

    1. Mulțumesc pentru distribuire! 🙂

  13. mulțumesc.

  14. Acest lucru m-a ajutat mult, mulțumesc foarte mult!

  15. Excelent! Funcționează perfect… Voiam doar să o văd în zona de administrare și doar primele două coduri fac trucul!

  16. Salut,

    Mulțumesc pentru cod, funcționează perfect fără cache activat…

    Dar, cum pot să o fac să funcționeze cu wp rocket?

    Te rog…

  17. Știe cineva cum să formatez sau să trunchiez numerele? Deci, în loc de 4445 vizualizări, să fie 4.445 sau 4,5K?

    1. S-ar putea să doriți să utilizați funcții PHP precum round() și number_format() pentru acest caz de utilizare.

  18. Salut, cumva codul meu rulează bine, dar face o incrementare de +2 de fiecare dată, vizualizările merg 0, 2, 4, 6. Ceea ce a fost enervant, vă rog ajutați-mă. Am plasat codul, precum și porțiunea de afișare a postărilor vizualizate, ambele într-o funcție care are o acțiune după conținut. Contorul funcționează, doar că este în multipli de 2.

    1. S-ar putea să doriți să verificați dacă această funcție, setPostViews(get_the_ID()), este adăugată o singură dată. Ce hook utilizați?

  19. Va funcționa în cache-ul lightspeed?

  20. Military_blogger June 30, 2019 at 6:17 am

    Cod care apare pe pagina principală

  21. Ups, scuze, vă rog să ignorați comentariul meu anterior. Mi-am dat seama că am apelat funcția setPostViews de mai multe ori. Greșeala mea….

    După ce am remediat acest lucru, văd că numărul de vizualizări crește doar cu +2 ori de câte ori reîmprospătez postarea unică de blog.

    Are cineva o soluție pentru asta? Nu-mi imaginez că va fi o problemă mare, având în vedere că majoritatea utilizatorilor nu vor reîmprospăta pagina, totuși ar fi frumos să avem un număr real de vizualizări de afișat..

    Mulțumesc pentru cod 🙂

  22. Cum să creezi un număr aleatoriu de vizualizări între (600,900)

    vă rog ajutați..

  23. cum opresc creșterea automată a numărului la reîmprospătarea paginii?

  24. Munna Hossain July 3, 2017 at 12:38 am

    Hei, sfaturi foarte bune. Mulțumesc că ați împărtășit cu noi. Folosesc un plugin și Google Analytics pentru a urmări vizualizările paginilor mele.

  25. Salut,

    Vreau să afișez numărul în interiorul clasei meta, codul meu meta este:

    cum să afișez contorul între meta precum autor, dată, categorii?

Adaugă un comentariu

Suntem bucuroși că ați ales să lăsați un comentariu. Vă rugăm să rețineți că toate comentariile sunt moderate conform politicii noastre de confidențialitate, iar toate linkurile sunt nofollow. NU folosiți cuvinte cheie în câmpul nume. Să avem o conversație personală și semnificativă.

Lista de verificare pentru lansarea WordPress

Lista de verificare finală pentru lansarea WordPress

Am compilat toate elementele esențiale de verificare pentru lansarea următorului dvs. site WordPress într-o singură carte electronică la îndemână.
Da, trimite-mi eBook-ul gratuit!