Snippets

WordPress: Artikelinfos wie Views, Update-Infos und Gesamtzahl von Shares in ein Widget packen

  • Lesezeit: 2 Minuten
Snippets 1

Für den Fall, dass das Wetter überraschenderweise bald novembermäßig wird, hier auf die Schnelle mal ein Tipp, wie man ein paar Artikelinformationen in ein Sidebar-Widget packen kann. Es geht hier um drei Informationen, die man traditionell entweder unter den Artikel oder in den Meta-Informationen platzieren würde.

Die Anzeige der 3 Informationen ist nur in der Artikelansicht sinnvoll, da sich die Auswertung ja auch nur darauf beziehen. Man benötigt also entweder ein Plugin zur Steuerung der Anzeige des Widgets (z.B. Widget-Logic) oder regelt das, wie im Beispiel mit etwas PHP-Code.

1.) Anzahl der Aufrufe eines Artikels (Views)
2.) Wann wurde der Artikel zuletzt geändert (Update)
3.) Wie oft wurde der Artikel geteilt (Twitter, Facebook, Google+)

Zuerst braucht man ein PHP-fähiges Widget. Ich nutze im Backend den Editor »WP Edit Pro», der auch diese Möglichkeit vorhält. Es gibt im Netz Codestückchen, die Widgets PHP-fähig machen. Diese könnte man ggf. via Toolbox von Sergej Müller in Gang setzen.

Zunächst also der Code für ein Widget, den man dort einfach einfügt (CSS H4 muss dem Theme entsprechend angepasst 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 Ermittlung der Gesamtanzahl der Shares 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 (ebenfalls z.B. einsetzen über die Toolbox von Sergej Müller):

Tipp:  Wordpress: Anderes Layout (Farbe) je nach Kategorie
// 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.' ';
}
medien_1
Die platte Reminiszenz aus dem Reich des deutschen (bayerischen) Adels fand ich wenig gelungen. Aber…
medien_1
Beim Lesen der STERN-Kritik von "Wetten dass...?" fällt mir spontan wieder ein, dass auch der "STERN" schon…

Ich freue mich auf Ihren Kommentar

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