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

Teilen

Auf Mastodon teilen

Gib deinen Mastodon-Server oder deine vollständige Adresse ein. Beides funktioniert.

Der Server wird nur in deinem Browser gespeichert.

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):

// 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.' ';
}
Merkliste

Kommentare

Was meinst du dazu?

Kommentieren auf diesem Blog

  • Text wird lokal zwischengespeichert
  • Antworten können per E-Mail abonniert werden
  • Kommentar kurzzeitig bearbeitbar oder löschbar

Nach dem Absenden kannst du deinen Kommentar noch 10 Minuten bearbeiten oder löschen.Danach ist keine Änderung oder Löschung mehr möglich.
Lou Reed – Perfect Day
Zuletzt gehört
Perfect Day
Lou Reed · Transformer
Davor
Diana Krall – Feels Like Home
Feels Like Home
Diana Krall · Wallflower (The Complete Sessions)