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.
Hallo,
Kann ich gefälschte Aufrufe + echte Aufrufe verfolgen?
Das bedeutet, ich kann den Startwert manuell festlegen (weil ich möchte, dass mein neu veröffentlichter Beitrag in der ersten Minute einen Wert von z. B. 3.429 Aufrufen anzeigt), damit mein Beitrag so aussieht, als hätte er eine hohe Anzahl von Beitragsaufrufen, natürlich auch in Kombination mit echten Aufrufen.
Wenn ja, wo kann ich die gefälschte Aufrufanzahl basierend auf dem Code festlegen?
Was wäre der Meta-Schlüssel, um ihn in einer Abfrage aufzurufen?
„post_views_count“ ist der Meta-Schlüssel.
Hallo, ist es möglich, die Anzahl der Aufrufe nur anzuzeigen, wenn sie über 1000 liegt?
Sie könnten diesen Code verwenden, wenn Sie die Anzahl der Kommentare anzeigen:
if (getPostViews(get_the_ID()) >= 1000) { echo getPostViews(get_the_ID()); }Gibt es eine Möglichkeit, Admin-Aufrufe von der Zählung auszuschließen?
Sie möchten vielleicht etwas wie diesen Code verwenden, um Aufrufe bedingt zu zählen: https://www.isitwp.com/check-if-user-is-logged-in/
Hey Debjit Saha, ich kann den Ordner single.php in meiner Vorlage nicht finden. Wo soll ich den Code einfügen?
Die Hauptschleife für einzelne Beiträge kann in einer anderen Vorlagendatei liegen. Möglicherweise möchten Sie nach einer Datei namens post.php oder einer ähnlich benannten Datei suchen.
Vielen Dank für diesen Code. Er hat perfekt funktioniert.
Gutes Snippet.
Wie kann ich die Zähler zurücksetzen und wieder mit dem Zählen beginnen?
Wenn Sie die Beitrags-IDs der gewünschten Beiträge kennen, sollte dies funktionieren.
UPDATE yourDatabaseName.wp_postmeta
set meta_value = 0
where meta_key = ‘post_views_count’ and post_id = 1934
Hallo, sehr gut dein Beitrag.
Meine Frage ist, wie bringe ich die Daten von Google Analytics, um die Anzahl der Aufrufe von Beiträgen und Seiten anzuzeigen?
Haben Sie einen Beitrag oder einen Link dazu, wie man das implementiert?
Leider haben wir derzeit keine genaue Empfehlung dafür. Sie könnten sich jedoch Folgendes ansehen: https://www.monsterinsights.com/how-to-check-stats-for-individual-wordpress-posts-and-pages/
Gibt es ein Google Analytics-Plugin, das Aufrufdaten abrufen und in WordPress anzeigen kann?
Es gibt viele… Sie können sich unsere vollständige Liste der besten Google Analytics-Plugins ansehen.
Die Codes funktionieren bei mir nicht. Ich habe ein bbpress-Thema, d.h. der Beitragstyp ist „topic“. Aber wenn ich nachsehe, wird meta_key im Backend generiert. Aber meta-Werte werden bei jedem Besuch nicht aktualisiert.
Tolle Artikel, es funktioniert gut auf meiner Seite.
Meine Frage ist, ob die Zählung erst beginnt, nachdem dieser Code implementiert wurde?
weil alle meine alten Seiten 0 oder 1 Aufrufe anzeigen, obwohl sie tatsächlich bereits Tausende von Aufrufen hatten.
Ja, die Zählung beginnt erst, wenn das Plugin aktiv ist. Alle Ansichten davor wurden von diesem Plugin nicht erfasst.
Vielen Dank – funktioniert super!
Ich habe die Funktion get_post_views leicht „verbessert“, sodass sie je nach Anzahl der Aufrufe den richtigen Text zurückgibt. Hier ist meine Version:
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 Aufrufe”;
}
if ($count==’1′) {
return “1 Ansicht”;
}
return $count.’ Ansichten’;
}
Vielleicht möchten Sie diese Version übernehmen.
Danke fürs Teilen! :)
Danke.
Das hat mir sehr geholfen, vielen Dank!
Großartig! Funktioniert einwandfrei… Ich wollte es nur im Adminbereich sehen und nur die ersten beiden Codes erledigen die Aufgabe!
Hallo,
Danke für den Code, er funktioniert einwandfrei, ohne dass der Cache aktiviert ist…
Aber wie kann ich ihn mit WP Rocket zum Laufen bringen?
Bitte…
Weiß jemand, wie man die Zahlen formatiert oder kürzt? Anstatt 4445 Aufrufe, also 4.445 oder 4,5K?
Für diesen Anwendungsfall möchten Sie vielleicht PHP-Funktionen wie round() und number_format() verwenden.
Hallo, irgendwie läuft mein Code zwar, aber er inkrementiert jedes Mal um +2, die Aufrufe gehen 0, 2, 4, 6. Das ist ärgerlich, bitte helft mir. Ich habe den Code sowie den Teil zur Anzeige der Beitragsaufrufe beide in eine Funktion eingefügt, die eine Aktion nach dem Inhalt hat. Der Zähler funktioniert, nur dass er in Zweier-Multiplen erfolgt.
Sie sollten vielleicht überprüfen, ob diese Funktion, setPostViews(get_the_ID()), nur einmal hinzugefügt wird. Welchen Hook verwenden Sie?
funktioniert wil die in lightspeed cache?
Code erscheint auf der Startseite