Wordpress Performance Wordpress SEO Wordpress Security Wordpress Themes Wordpress Hosting Mein Setup Das Buch

Post Views ohne Plugin

Post Views ohne Plugin

Aufrufe eines Artikel anzeigen

Post Views, also die Anzahl der Aufrufe eines Artikels, sind in Themes bzw. WordPress nicht unbedingt Standard. Das hat auch einen guten Grund, denn Aufrufe müssen extra gespeichert und ausgegeben werden, was nützlich sein kann, für kleine Websites aber vollkommen überflüssig ist. Nun könntet ihr zu einem Plugin greifen. Das erstellt dann eine neue Tabelle, gibt die Post Views an gewünschter Stelle korrekt aus und vieles mehr. Oder ihr verzichtet auf ein WordPress Plugin, nutzt ein relativ kleines Snippet, und erreicht am Ende quasi das Gleiche wie mit dem fetten Plugin. Nur eben ohne Umwege und ohne den ganzen Ballast im Code. Das einfügen geht ganz einfach, ihr werdet es gleich sehen.

Folgendes in die Functions.php eures Theme kopieren:

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

Folgendes in die Single.php kopieren (erkennt die Anzahl der Aufrufe):

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

Folgendes an die Stelle der Single.php kopieren, wo die Views angezeigt werden sollen:

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

Sollen die Views auch im Admin in der Artikelübersicht angezeigt werden? Dann noch folgendes in die Functions.php hinzufügen:

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

Loop der die Artikel nach Anzahl der Views sortiert (optional):

<?php
$args = array(
	'numberposts' => 4,
	'orderby' => 'meta_value',
	'meta_key' => 'post_views_count',
	'order' => 'DESC',
	'post_type' => 'post',
	'post_status' => 'publish'
);
$myposts = get_posts($args);
foreach($myposts as $mypost) {
}
?>

Post Views ohne Plugin

Im Grunde ist das Snippet nun sehr einfach und simpel. Es fügt eine Funktion hinzu, um die Views bzw. Aufrufe einzelner Artikel zu erkennen, außerdem ermöglicht es die korrekte Ausgabe dieser Werte. Mit sehr wenig Code ist so möglich, die Anzahl der Views für Artikel auszugeben. Natürlich wird hier nichts via IP gefiltert oder ähnliches, weshalb jeder Aufruf eines Artikels auch wirklich schon als View zählt. Für die Besucher sind solche Zugriffszahlen deshalb interessant, weil viele sie als Indikator für lesenswerte Inhalte heranziehen. Auf der anderen Seite repräsentieren sie Aktivität, denn wo Artikel häufig aufgerufen werden, da gibt es auch viele Leser. Nicht vergessen: Wer ein Caching-Plugin verwendet, muss entweder für eine Ausnahme sorgen, oder sich damit abfinden, dass die Views nicht ständig aktualisiert, sondern nur in der vom Cache angegeben Zeit erneuert werden.



Wordpress Performance eBook