X

Beitragsaufrufe ohne Plugin mit Post Meta verfolgen

Schnipsel von IsItWP

Suchen Sie nach einer Möglichkeit, Beitragsaufrufe ohne Plugin über Beitrags-Metadaten zu verfolgen? Obwohl es wahrscheinlich ein Plugin dafür gibt, haben wir einen schnellen Code-Schnipsel erstellt, den Sie verwenden können, um Beitragsaufrufe ohne Plugin über Beitrags-Metadaten in WordPress zu verfolgen.

Anweisungen:

Fügen Sie diesen Code in die functions.php-Datei Ihres Themes oder in ein websitespezifisches Plugin ein:

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

Fügen Sie diesen Code optional auch einer Spalte im WordPress-Adminbereich hinzu, die die Beitragsaufrufe anzeigt:

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

Dieser Teil des Codes zur Verfolgung von Aufrufen legt die Beitragsaufrufe fest. Platzieren Sie diesen Code einfach unten in der Datei single.php innerhalb der WordPress-Schleife.

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

Hinweis zu Fragment-Caching: Wenn Sie ein Caching-Plugin wie W3 Total Cache verwenden, funktioniert die obige Methode zum Festlegen von Aufrufen nicht, da die Funktion setPostViews() niemals ausgeführt würde. W3 Total Cache verfügt jedoch über eine Funktion namens Fragment-Caching. Verwenden Sie anstelle des oben genannten Folgendes, damit setPostViews() einwandfrei funktioniert und alle Ihre Beitragsaufrufe verfolgt, auch wenn Sie Caching aktiviert haben.

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

Der folgende Code ist optional. Verwenden Sie diesen Code, wenn Sie die Anzahl der Aufrufe innerhalb Ihrer Beiträge anzeigen möchten. Platzieren Sie diesen Code innerhalb der Schleife.

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

Hinweis: Wenn Sie zum ersten Mal Code-Schnipsel in WordPress hinzuf ilde{A}gen, lesen Sie bitte unseren Leitfaden, wie Sie Code-Schnipsel richtig in WordPress kopieren / einf ilde{A}gen, damit Sie Ihre Website nicht versehentlich besch ilde{A}digen.

Wenn Ihnen dieser Code-Schnipsel gefallen hat, ziehen Sie bitte in Betracht, unsere anderen Artikel auf der Website zu lesen, wie zum Beispiel: 10 beste WordPress-Testimonial-Plugins und wie man die Autorenverfolgung in WordPress mit Google Analytics einrichtet.

Kommentare   Hinterlasse eine Antwort

  1. Ups, Entschuldigung, bitte ignorieren Sie meinen vorherigen Kommentar. Mir ist aufgefallen, dass ich die Funktion setPostViews mehrmals aufgerufen habe. Mein Fehler….

    Nachdem ich dies behoben habe, sehe ich, dass die Aufrufzahl bei jeder Aktualisierung des einzelnen Blogbeitrags nur um +2 steigt.

    Hat jemand eine Lösung dafür? Ich stelle mir das nicht als großes Problem vor, da die meisten Benutzer die Seite nicht tatsächlich aktualisieren werden, aber es wäre schön, eine tatsächliche Zählzahl anzuzeigen.

    Danke für den Code 🙂

  2. Wie man eine zufällige Aufrufzahl von (600,900) erstellt

    bitte helft mir..

  3. Wie kann ich die automatische Erhöhung der Anzahl bei Seitenaktualisierung stoppen?

  4. Munna Hossain 3. Juli 2017 um 0:38 Uhr

    Hey, wirklich tolle Tipps. Danke fürs Teilen. Ich benutze ein Plugin und Google Analytics, um meine Seitenaufrufe zu verfolgen.

  5. Hallo,

    Ich möchte die Anzahl innerhalb der Meta-Klasse anzeigen, mein Meta-Code lautet:

    Wie kann ich den Zähler zwischen den Metadaten wie Autor, Datum, Kategorien einfügen?

  6. Risikomanagement-Guru 1. Dezember 2016 um 14:24 Uhr

    Hallo,

    Kennen Sie den Standard-PHP/wp-Feldnamen für die Beitragsaufrufe? Ich möchte nur das anzeigen, einfach.
    Danke.

    Risikomanager

  7. Versuche, aber es funktioniert nicht für mich.

  8. Wenn ich nur 5 brauche, müsste ich ändern?

  9. Wo werden die Beitragsaufrufe angezeigt?

    1. An der Stelle, an der Sie den Code in Ihrer Vorlage aus Schritt 2 platzieren.
      echo getPostViews(get_the_ID()); Sie können dies in HTML einfügen und nach Belieben gestalten. Aber die Daten werden in den Beitragsmetadaten gespeichert. Sie sollten dies sehen können, wenn Sie einen Beitrag im Abschnitt benutzerdefinierte Felder bearbeiten.

      1. w3t cache macht Fragment-Cache nur in der Pro-Version verfügbar $$$

  10. Guten Tag,

    Der Snippet funktioniert gut, aber ich muss den Wert zurücksetzen.

    Könnte mir bitte jemand helfen.

    Ich versuche dies, aber es funktioniert nicht – UPDATE wp_postmeta SET meta_value = ‘0’ WHERE wp_postmeta.meta_key =’post_views_count’

    Danke

    1. Sie können zurücksetzen, indem Sie zu Ihrer Website-Datenbank gehen, nach postmeta suchen, darauf klicken und nach post_view_count suchen und alle löschen.

      1. Entschuldigung, aber ich kann dieses Feld in meiner Datenbank nicht finden. Bitte erklären Sie, wie man die Zähler auf 0 zurücksetzt. Danke

        1. Die Post-Meta befindet sich in der Tabelle wp_postmeta. Wenn keine der Zeilen in der Spalte meta_key den Wert post_views_count hat, dann ist es möglich, dass die Anzahl noch nicht in der Datenbank gespeichert wurde.

  11. Hallo Leute, falls jemand nach der Anzahl der Besuche nach IP-Adresse sucht, um nur einen Besuch pro Besucher zu zählen, ist dies der richtige Code dafür. Ich hoffe, er funktioniert gut für Sie. Dies sind meine Änderungen an der Funktion „setPostViews“:

    function setPostViews($postID) { session_start(); $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{ if(!isset($_SESSION[‘post_views_count-‘. $postID])){ $_SESSION[‘post_views_count-‘. $postID]=”si”; $count++; update_post_meta($postID, $count_key, $count); } } }

    Ersetzen Sie einfach diese Funktion durch die alte Funktion und gut gemacht!!

    1. funktioniert nicht

      1. Vielen Dank. Der Code funktioniert für mich :)

  12. Hallo
    Ich benutze es und es ist großartig, aber ich habe ein nerviges Problem
    Es zählt doppelt bei benutzerdefinierten Beitragstypen.

    Weiß nicht, was ich tun soll, um es zu beheben, jede Hilfe?

    1. Haben Sie die Funktion setPostViews() in die single.php-Vorlage oder eine andere Vorlage eingefügt?

      1. patrick1991groot 27. August 2016 um 06:28 Uhr

        Ich habe genau das gleiche Problem! Ja, ich habe es nur in die single.php-Datei eingefügt... Ich benutze dieses ICM WP Car Manager Plugin... Zählt auch bei jedem Besuch 2, 4, 6.

  13. Das ist ein nützlicher Ausschnitt. Danke fürs Teilen!

  14. Ich habe die Funktion modifiziert und sie so erweitert, dass sie prüft, ob eine aktive Sitzung für den Beitrag vorhanden ist, und hier ist sie;

    function wpb_set_post_views($postID) { session_start(); $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{ if(!isset($_SESSION['post_views_count-'. $postID])){ $_SESSION['post_views_count-'. $postID]='si'; $count++; update_post_meta($postID, $count_key, $count); } } }

    1. Und wozu sollte das gut sein? Etwas Besonderes?

  15. Ich bekomme doppelte Zählungen für jeden Aufruf. Wenn der Beitrag angesehen wird, werden zwei Aufrufe statt einem hinzugefügt.

    1. Ich habe das gleiche Problem. Hat jemand eine Idee, was das Problem ist?

      1. In welche Template-Datei fügst du die setPostViews()-Funktion ein?

        1. single.php
          Ich habe versucht, setPostViews() sowohl innerhalb als auch außerhalb der Schleife einzufügen, konnte das Problem aber nicht beheben.

          1. patrick1991groot 27. August 2016 um 06:29 Uhr

            Habe auch das gleiche Problem…

          2. Das funktioniert, indem die set views-Funktion aufgerufen wird, die Post-Meta hinzufügt. Wenn sie also nicht zweimal aufgerufen wird, erhältst du nur 1 Aufruf. Ich würde dein Theme überprüfen, um sicherzustellen, dass nichts wie mehrere Schleifen oder Ähnliches beteiligt ist. Ohne deine single.php zu sehen, könnte ich jedoch nicht sicher sein, was das genaue Problem ist.

        2. Ich habe auch das gleiche Problem. In der single.php, egal ob innerhalb oder außerhalb der Schleife, zählt es jedes Mal 2, wenn ich die Seite aktualisiere…

          Dies ist auch mein persönliches Theme…

          Ich habe jedoch bemerkt, dass ich eine benutzerdefinierte Post-Theme-Vorlage erstellt habe. Ich lasse sie außerhalb der Schleife direkt unter dem Body-Tag und sie zählt nur einmal, wenn ich die Seite aktualisiere…

          Ich habe auch versucht, sie in den Kopf der header.php einzufügen, und dort zählt sie auch nur einmal…. Das einzige Mal, dass dies nicht richtig funktioniert, ist, wenn ich die Domain.com/blog-Seite ansehe und sie von dort aktualisiere. Der erste Beitrag in der Blog-Liste zählt einmal.

          Na ja, damit kann ich leben… Danke nochmal für den Code…

          1. Sie sollten überprüfen, ob setPostViews(); irgendwie zweimal aufgerufen wird, z. B. wenn das Theme den Template-Code irgendwie zweimal aufruft.

  16. Ich kann das nicht mit W3 Total Cache zum Laufen bringen. Gibt es eine Möglichkeit, dass es damit funktioniert, oder ist es absolut unmöglich?

  17. Hat jemand Probleme, den Zähler zum Laufen zu bringen? Ich benutze WordPress 4.2 und habe W3 Total Cache installiert. Die Zählung bleibt bei 0, egal was passiert (eingeloggter Benutzer, ausgeloggter Benutzer, Seitenaktualisierung, Cache geleert).

    1. Ich möchte nur, dass die Zählung im Backend funktioniert. Jede Idee wäre sehr willkommen.

      1. Ich auch!

        1. Hast du das gelöst? Ich glaube, ich kann dir helfen.

  18. fantastisch, wie kann ich es dazu bringen, nur die Aufrufe von heute zu zählen
    danke

  19. Funktioniert super in single.php, aber wie in category.php. Wenn Sie die Seite aktualisieren, fügen alle Beiträge eine Ansicht hinzu, es sollte die tatsächliche Anzahl der Beitragsansichten abrufen.

    1. Hast du das schon herausgefunden? Ich benutze WP 5.2.2 und bekomme bei jedem Aktualisieren +2 Zählungen... Ansonsten scheint es zu funktionieren....

  20. funktioniert super, genau das, was ich wollte. danke fürs Teilen, Bro.

  21. Fernando Carrascosa 15. Mai 2015 um 04:53 Uhr

    Hallo!

    Zuerst einmal vielen Dank für dieses Skript, es war sehr nützlich.

    Ich habe eine Frage, ich habe diesen Schnipsel in einem benutzerdefinierten Theme, das ich entwickle, um mein Portfolio neu zu gestalten/neu zu codieren, und ich habe festgestellt, dass in benutzerdefinierten Beiträgen der Zähler angezeigt wird, aber wenn ich mich im wp-Admin befinde, wird die Anzahl der Besuche, die ich habe, nicht angezeigt, wie es bei regulären Beiträgen der Fall ist.

    Hast du eine Idee, wie man das beheben kann?

    Vielen Dank.

  22. Schön!! Danke für das Skript!! Sehr gut!!

  23. Dies zählt nur meine Aufrufe. Wie kann ich es dazu bringen, die Aufrufe aller zu zählen?

    1. Wenn ich mir den Code im Beitrag ansehe, sollte er definitiv die Aufrufe jedes Besuchers verfolgen.

      Sie haben entweder überhaupt keine Besucher (das scheint unwahrscheinlich) oder Sie haben den setPostViews()-Funktionsaufruf in einen bedingten Block eingefügt, der nur ausgelöst wird, wenn der Benutzer entweder angemeldet ist oder ein Seitenadministrator ist.

  24. Danke für das Skript. Gibt es eine Möglichkeit, z. B. die 5 meistbesuchten Beiträge anzuzeigen?

  25. Endlich etwas Einfaches und es funktioniert sehr gut, danke

Kommentar hinzufügen

Wir freuen uns, dass Sie einen Kommentar hinterlassen haben. Bitte beachten Sie, dass alle Kommentare gemäß unserer Datenschutzrichtlinie moderiert werden und alle Links nofollow sind. Verwenden Sie KEINE Schlüsselwörter im Namensfeld. Lassen Sie uns ein persönliches und bedeutungsvolles Gespräch führen.

WordPress Launch Checkliste

Die ultimative Checkliste für den Start von WordPress

Wir haben alle wichtigen Checklistenpunkte für den Start Ihrer nächsten WordPress-Website in einem praktischen E-Book zusammengefasst.
Ja, senden Sie mir das kostenlose E-Book!