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, cauți o interogare pentru a șterge postările fără vizualizări, ai idei? mulțumesc 🙂

  2. Kevin, Mulțumesc pentru acest fragment util.

  3. Cum va funcționa acest lucru pentru un site cu un volum de trafic foarte mare? Mă uitam la un plugin de vizualizări postări care este foarte popular (nu-mi mai amintesc numele acum) și aceasta a fost o preocupare menționată în comentarii.

  4. Funcționează bine cu versiunile noi de WP. Asigură-te că ai configurat corect lucrurile.

  5. Salut, există vreo modalitate de a reseta contorul la zero vizualizări?

    1. Salut Cyndy, totul este salvat ca metadate, așa că poți intra pur și simplu în postare și schimba valoarea de la ce este la zero.

      1. Kevin, mulțumesc

        tutorialul tău foarte util!!

        1. Salut Cyndy, Salut Kevin.
          Cod grozav.
          Nu pot găsi locul exact unde sunt stocate aceste metadate pentru fiecare postare pentru a le schimba.
          În interiorul postării (Din Panou->Postare->Editare) există doar conținutul postării, fără metadate.
          Mulțumesc.

  6. Salut Kevin!
    Am folosit fragmentul tău de ceva timp și sunt mulțumit, dar în ultimele săptămâni s-a întâmplat ceva și a încetat să mai numere toate vizualizările. Știu asta pentru că văd 500 de vizualizări din Google Analytics, totuși fragmentul arată doar 18 vizualizări? Folosesc exact codul pe care l-ai prezentat aici, fără modificări. Am schimbat doar un cont luna trecută și de atunci totul a încetat să mai funcționeze.

    1. În mod normal, acest lucru s-ar datora instalării unui nou plugin sau ceva de genul acesta. Am testat acest fragment pe versiuni noi de WordPress și ar trebui să funcționeze perfect. Ai cumva un plugin de cache care rulează pe site-ul tău, cum ar fi w3 total cache?

      1. Am instalat w3. Cum afectează fragmentul? A funcționat până acum alături de el, de ce cauzează probleme acum? Am curățat cache-ul de multe ori și tot nimic. urâââât!

        1. deoarece nu ar apela funcția setPost, deoarece lucrurile sunt în cache, trimite-mi un email folosind formularul de contact și îți voi trimite o versiune actualizată care va rezolva problema.

          1. poți să împărtășești aici?

  7. Există vreo modalitate ca numărul de vizualizări să fie resetat în fiecare zi pentru a afișa doar numărul de vizualizări pentru ziua curentă?

    1. Salut Pere,
      Da, absolut, dar ar trebui să schimbi o cantitate considerabilă de cod pentru a realiza acest lucru. Din păcate, nu este doar o simplă schimbare,

      1. Acesta este exact ceea ce caut. Există undeva unde pot obține aceste informații?
        Trebuie să implementez o secțiune de articole populare pentru un client și sunt blocat în acest moment. Se pare că nu pot obține nicio informație despre asta pe web.
        Orice ajutor ar fi foarte apreciat!

    2. Salut Pere, ai aflat ceva despre asta?

  8. Mark Petherbridge January 10, 2015 at 8:25 pm

    Există vreo modalitate ca acest lucru să înregistreze doar vizualizări unice? Apăsarea repetată a tastei F5 pe tastatura mea crește numerele.

    1. Salut Mark,
      Da, dar nu ușor cu acest fragment. Ai putea face o verificare a cookie-urilor sau urmărirea adreselor IP pentru vizualizări unice mai bune, dar nu perfecte. Sau chiar să ceri utilizatorilor să fie conectați și să urmărești pe bază de utilizator.

  9. $count = 0; în setPostViews() pe linia #15 ar trebui eliminat, nu face mare lucru 😉

  10. Fără îndoială, cel mai rapid fragment de implementat
    Îl folosesc pentru mai multe metode de notificare frontend, treabă grozavă

    Ești grozav!

  11. mulțumesc acest tutorial

  12. Unde este stocat numărul? Este într-o bază de date?
    Am vrut să știu dacă este posibil să modific valorile.

    Funcționează bine pentru mine pe cea mai recentă versiune de WordPress, mulțumesc.

  13. pentru mine numără de două ori…

    1. Salut Andrew, probabil face prefetching sau setViews este adăugat de mai multe ori. Pentru a rezolva una dintre probleme, încearcă să adaugi asta. Reține codul de mai sus.

      // Elimină problemele cu prefetching care adaugă vizualizări suplimentare
      remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);

  14. Salut, se pare că nu mai funcționează în WP 4.0. Poate cineva să confirme sau să ofere o soluție? mulțumesc!

    1. Ai auzit ceva despre asta? Tocmai am făcut upgrade la 4.0 și aș dori să folosesc asta.

    2. Și eu la fel.

    3. Folosesc 4.0 și nu am nicio problemă :)

  15. Wow. Asta mi-a economisit timp. Foarte drăguț, omule, mulțumesc.

  16. Fragment grozav, dar tot se incrementează la fiecare postare.

  17. Salut!
    Scuze pentru engleza mea proastă, folosesc un translator. Sunt din Brazilia.
    Am un site care are deja mai multe vizualizări la postări, cum să nu pierd aceste vizualizări? Trebuie să actualizez baza de date? Folosesc acest plugin: WP-PostViews

  18. Ai putea să mă ajuți cu stilizarea ieșirii echo. Vreau să pun numărul de vizualizări în bucla mea și am reușit perfect, dar cum adaug un CSS la ieșire pentru text? Aveți idei despre asta. Mulțumesc

    1. Salut Randy, poți face următoarele adăugând un div în jurul funcției php. Am adăugat un exemplu pe pastebin
      http://pastebin.com/ThLasSJB

      1. Am încercat asta chiar acum și nu funcționează.

      2. Am încercat asta chiar acum și nu funcționează.

      3. Am încercat asta chiar acum și nu funcționează.

      4. Am încercat asta chiar acum și nu funcționează.

      5. Am încercat asta chiar acum și nu funcționează.

      6. Am încercat asta chiar acum și nu funcționează.

        1. Salut Randy,
          numărul de vizualizări este afișat de fragment? dacă da, are legătură cu CSS-ul sau HTML-ul tău, deoarece copierea acelui fragment și plasarea lui în bucla postării tale unice ar trebui să funcționeze bine. Trebuie doar să definești niște stiluri de aplicat.

  19. Ai putea să mă ajuți cu stilizarea ieșirii echo. Vreau să pun numărul de vizualizări în bucla mea și am reușit perfect, dar cum adaug un CSS la ieșire pentru text? Aveți idei despre asta. Mulțumesc

  20. Ai putea să mă ajuți cu stilizarea ieșirii echo. Vreau să pun numărul de vizualizări în bucla mea și am reușit perfect, dar cum adaug un CSS la ieșire pentru text? Aveți idei despre asta. Mulțumesc

  21. Ai putea să mă ajuți cu stilizarea ieșirii echo. Vreau să pun numărul de vizualizări în bucla mea și am reușit perfect, dar cum adaug un CSS la ieșire pentru text? Aveți idei despre asta. Mulțumesc

  22. Ai putea să mă ajuți cu stilizarea ieșirii echo. Vreau să pun numărul de vizualizări în bucla mea și am reușit perfect, dar cum adaug un CSS la ieșire pentru text? Aveți idei despre asta. Mulțumesc

  23. Ai putea să mă ajuți cu stilizarea ieșirii echo. Vreau să pun numărul de vizualizări în bucla mea și am reușit perfect, dar cum adaug un CSS la ieșire pentru text? Aveți idei despre asta. Mulțumesc

  24. Ai putea să mă ajuți cu stilizarea ieșirii echo. Vreau să pun numărul de vizualizări în bucla mea și am reușit perfect, dar cum adaug un CSS la ieșire pentru text? Aveți idei despre asta. Mulțumesc

  25. Ai putea să mă ajuți cu stilizarea ieșirii echo. Vreau să pun numărul de vizualizări în bucla mea și am reușit perfect, dar cum adaug un CSS la ieșire pentru text? Aveți idei despre asta. Mulțumesc

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!