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.
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 🙂
Wie man eine zufällige Aufrufzahl von (600,900) erstellt
bitte helft mir..
Wie kann ich die automatische Erhöhung der Anzahl bei Seitenaktualisierung stoppen?
Hey, wirklich tolle Tipps. Danke fürs Teilen. Ich benutze ein Plugin und Google Analytics, um meine Seitenaufrufe zu verfolgen.
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?
Hallo,
Kennen Sie den Standard-PHP/wp-Feldnamen für die Beitragsaufrufe? Ich möchte nur das anzeigen, einfach.
Danke.
Risikomanager
Versuche, aber es funktioniert nicht für mich.
Wenn ich nur 5 brauche, müsste ich ändern?
Wo werden die Beitragsaufrufe angezeigt?
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.w3t cache macht Fragment-Cache nur in der Pro-Version verfügbar $$$
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
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.
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
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.
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!!
funktioniert nicht
Vielen Dank. Der Code funktioniert für mich :)
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?
Haben Sie die Funktion setPostViews() in die single.php-Vorlage oder eine andere Vorlage eingefügt?
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.
Das ist ein nützlicher Ausschnitt. Danke fürs Teilen!
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); } } }
Und wozu sollte das gut sein? Etwas Besonderes?
Ich bekomme doppelte Zählungen für jeden Aufruf. Wenn der Beitrag angesehen wird, werden zwei Aufrufe statt einem hinzugefügt.
Ich habe das gleiche Problem. Hat jemand eine Idee, was das Problem ist?
In welche Template-Datei fügst du die setPostViews()-Funktion ein?
single.php
Ich habe versucht, setPostViews() sowohl innerhalb als auch außerhalb der Schleife einzufügen, konnte das Problem aber nicht beheben.
Habe auch das gleiche Problem…
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.
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…
Sie sollten überprüfen, ob setPostViews(); irgendwie zweimal aufgerufen wird, z. B. wenn das Theme den Template-Code irgendwie zweimal aufruft.
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?
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).
Ich möchte nur, dass die Zählung im Backend funktioniert. Jede Idee wäre sehr willkommen.
Ich auch!
Hast du das gelöst? Ich glaube, ich kann dir helfen.
fantastisch, wie kann ich es dazu bringen, nur die Aufrufe von heute zu zählen
danke
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.
Hast du das schon herausgefunden? Ich benutze WP 5.2.2 und bekomme bei jedem Aktualisieren +2 Zählungen... Ansonsten scheint es zu funktionieren....
funktioniert super, genau das, was ich wollte. danke fürs Teilen, Bro.
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.
Schön!! Danke für das Skript!! Sehr gut!!
Dies zählt nur meine Aufrufe. Wie kann ich es dazu bringen, die Aufrufe aller zu zählen?
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.
Danke für das Skript. Gibt es eine Möglichkeit, z. B. die 5 meistbesuchten Beiträge anzuzeigen?
Endlich etwas Einfaches und es funktioniert sehr gut, danke