WordPress: Artikelinfos Wie Views, Update-Infos Und Gesamtzahl Von Shares In Ein Widget Packen

Für den Fall, dass das Wet­ter über­ra­schen­der­wei­se bald novem­ber­mä­ßig wird, hier auf die Schnel­le mal ein Tipp, wie man ein paar Arti­kel­in­for­ma­tio­nen in ein Side­bar-Wid­get packen kann. Es geht hier um drei Infor­ma­tio­nen, die man tra­di­tio­nell ent­we­der unter den Arti­kel oder in den Meta-Infor­ma­tio­nen plat­zie­ren würde.

Die Anzei­ge der 3 Infor­ma­tio­nen ist nur in der Arti­kel­an­sicht sinn­voll, da sich die Aus­wer­tung ja auch nur dar­auf bezie­hen. Man benö­tigt also ent­we­der ein Plug­in zur Steue­rung der Anzei­ge des Wid­gets (z.B. Wid­get-Logic) oder regelt das, wie im Bei­spiel mit etwas PHP-Code.

1.) Anzahl der Auf­ru­fe eines Arti­kels (Views)
2.) Wann wur­de der Arti­kel zuletzt geän­dert (Update)
3.) Wie oft wur­de der Arti­kel geteilt (Twit­ter, Face­book, Google+)

Zuerst braucht man ein PHP-fähi­ges Wid­get. Ich nut­ze im Backend den Edi­tor „WP Edit Pro“, der auch die­se Mög­lich­keit vor­hält. Es gibt im Netz Code­stück­chen, die Wid­gets PHP-fähig machen. Die­se könn­te man ggf. via Tool­box von Ser­gej Mül­ler in Gang setzen.

Zunächst also der Code für ein Wid­get, den man dort ein­fach ein­fügt (CSS H4 muss dem The­me ent­spre­chend ange­passt werden).

<?php if ( is_single() ) { ?> <h4 class="widget-title">Artikelinfo</h4>Dieser Artikel wurde bereits <?php setPostViews(get_the_ID()); echo getPostViews(get_the_ID())-1;?> mal gelesen.
<br />
Letzte Änderung des Beitrages am:
<!-- START DISPLAY UPDATE INFO -->
<?php if(strtotime($post->post_modified) - strtotime($post->post_date) > 86400)
echo "" ;
the_modified_date('j.m.y');?>
<!-- END DISPLAY UPDATE INFO --><br />
Insgesamt wurde dieser Beitrag <?php echo do_shortcode('[totalshares] '); ?> mal geteilt.

<?php }?>

So sieht der Code für die Ermitt­lung der Gesamt­an­zahl der Sha­res aus:

function getTotalShares($atts) {
extract(shortcode_atts(array(
'cache' => '3600',
'url' => 0,
'f' => 0,
'bgcolor' => '#ffffff',
'bordercolor' => '#ffffff',
'borderwidth' => '0',
'bordertype' => 'solid',
'fontcolor' => '#7fc04c',
'fontsize' => '55',
'fontweight' => 'normal',
'padding' => '1'
), $atts));

$shareHash = "$cache.$url.$f.$bgcolor.$bordercolor.$borderwidth.$bordertype.$fontcolor.$fontsize.$fontweight.$padding";
$totalShareRecord = 'totalshares_' . $shareHash;
$cachedposts = get_transient($totalShareRecord);
if ($cachedposts !== false) {
return $cachedposts;

} else {

if (!$url) $url = get_permalink($post->ID);

$json = file_get_contents("http://api.sharedcount.com/?url=" . rawurlencode($url));
$counts = json_decode($json, true);
$return = $counts['Twitter'] + $counts['Facebook']['total_count'] + $counts['GooglePlusOne'];
if ($f) $return = '
' . $return . '';
set_transient($totalShareRecord, $return, $cache);
return $return;
}
}
add_shortcode('totalshares','getTotalShares');

Hier noch der Code für die Views (eben­falls z.B. ein­set­zen über die Tool­box von Ser­gej Müller):

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

// function to display number of posts.
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 ";
}
return $count.' ';
}

Horst Schulte

2004 bin ich (63) unter die Blogger gegangen. Es sind nur wenige Jahre vergangen. Trotzdem bin ich in diesem Geschäft ein alter Hase.

Ich schreibe über gesellschaftliche und politische Themen. Hin und wieder gibt es bei 2bier auch was zum Thema Bloggen und Wordpress zu lesen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.