„Echten“ Vollbildmodus für WordPress ein- und ausschalten

Wer viel schreibt, wird den geänderten Vollbildmodus im Backend von WordPress zu schätzen wissen. Ich habe ihn meistens eingeschaltet. Das „Drumrum“ brauche ich erst später.

Ich muss allerdings sagen, dass ich den „echten“ Vollbildmodus, den es davor mal für kurze Zeit gegeben hat, mehr geschätzt habe. Caschy veröffentlichte kürzlich in seinem Blog ein Code-Fitzelchen, mit dessen Hilfe man das Icon wieder herzaubern kann, mit dessen Hilfe dieser „echte“ Vollbildmodus wieder ein- und ausgeschaltet werden kann.

add_filter('mce_buttons', 'my_mce_buttons');
function my_mce_buttons($buttons) {
$buttons[] = 'fullscreen';
return $buttons;
}

Der Code muss in die functions.php deines Themes eingefügt werden. Je nach dem Struktur des Themes ist das einfach. Sonst musst du die Stelle finden, an der dein aktuelles Theme die normalerweise darin untergebrachten Funktionen „versteckt“ hat.

Ich nutze schon seit Jahren „Toolbox“ von Sergej Müller. Darin liegt ein File (Modul), in das ich einige wenige nützliche Code-Fitzelchen eingefügt habe. Das funktioniert wunderbar und man wundert sich später nicht darüber, dass das Icon wieder futsch ist. Zum Beispiel dann, wenn man einen Theme-Wechsel durchführt. Soll ja ab und an vorkommen :-)

Leider hat Sergej inzwischen seine WordPress-Entwicklungen eingestellt. Und nicht nur das. Leider sind aus der WordPress-Bibliothek auch einige seiner Plugins verschwunden. Dazu gehört Toolbox. Cachify, Statify, Optimus und WP Seo wurden von anderen Entwicklern übernommen und sind weiter verfügbar. Bei Toolbox muss man sich eine der zahlreichen Alternativen suchen. Leider ist nichts für ewig. Mit „Code Snippet“ wird diese Alternativlösung sicher ebenfalls gut funktionieren. Auf kurz oder lang werde ich mir wohl dieses Plugin als Ersatz für Toolbox anschauen müssen :-(

Mit dem folgenden Snippet habe ich eingestellt, dass sich „fremde Links“ in einem neuen Fenster öffnen. Ich weiß, dass ich kein Web-Standard. Aber ich mag das halt lieber so.

/* Externe Links im eigenen Fenster */

if (!is_admin()) {wp_deregister_style("cfq");}

function wp_change_target($content){
 return preg_replace_callback('/<a[^>]+/', 'wp_target_callback', $content);
}

function wp_target_callback($matches){
 $link = $matches[0];
 $mu_url = get_bloginfo('url');

 if (strpos($link, 'target') === false){
 $link = preg_replace("%(href=\S(?!$mu_url))%i", 'target="_blank" $1', $link);
 }elseif (preg_match("%href=\S(?!$mu_url)%i", $link)){
 $link = preg_replace('/target=S(?!_blank)\S*/i', 'target="_blank"', $link);
 }
 return $link;
}
add_filter('the_content', 'wp_change_target');

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

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

Ein paar Tricks zur Nutzung von Jetpack-Modulen

Der Umgang mit Jetpack ist im Großen und Ganzen problemlos. Dennoch gibt es natürlich Möglichkeiten, verschiedene der inzwischen sehr umfangreichen Bestandteile an eigene Bedürfnisse anzupassen.

Ein paar der möglichen Anpassungen möchte ich hier kurz zusammenfassen.

Es gibt es ein Alternativ-Plugin, das ich selbst schon einmal eine Zeit lang ausprobiert habe und auf das ich hier vorweg eingehen möchte.  Es heißt Slim Jetpack und der Name ist Programm. Eine Reihe der Funktionen, die in der Originalversion enthalten sind, wurden eingespart. Das Plugin wurde seit Januar dieses Jahres nicht mehr aktualisiert. „Ein paar Tricks zur Nutzung von Jetpack-Modulen“ weiterlesen

Google+ Kommentare ohne Plugin im Blog nutzen

Inzwischen gibt es eine Reihe guter Plugins für die Aufgabe, auch Google+Kommentare im eigenen Blog anzuzeigen bzw. Kommentare über den Google+-Account direkt im Blog zu schreiben. Hier habe ich das Plugin „Google+ Comments for WordPress“ von Brandon Holtsclaw im Einsatz, das noch einige weitere Möglichkeiten anbietet. Damit kann zusätzlich über Facebook, Disqus und neuerdings auch den Livefyre-Account komentiert werden. Auf dieses Plugin stieß ich vor ein paar Wochen durch einen Hinweis von Markus.

Implement Google Plus Commenting on WordPress without using Plugin

Schließt an den Aufruf des Scripts noch {lang: ‚de‘} an (in geschweiften Klammern).

Die paar Zeilen einfach ins die comments.php kopieren, fertig. Das Google-Kommentarfeld erscheint nun in deutscher Sprache über oder unter den WordPress-Kommentaren – je nachdem, wohin ihr es platziert haben möchtet.

Ich weiß, dass manche die zusätzliche Aufnahme von Google-Kommentaren ebenso wenig mögen, wie seinerzeit die Möglichkeit, Facebook-Kommentare in Blogs zu integrieren. Nun sieht man andererseits immer mehr WordPress-Blogs, in denen sogar auf die normalen Kommentarfelder ganz verzichtet wird. Das finde ich aus dem Grund nicht so gut, weil nicht jeder über die notwendigen Google+- oder Facebook- Accounts verfügt.

Aber das ist ja auch das Schöne. Jeder kann es halten, wie er möchte.

Eine mögliche Alternative: WordPress – ShortCodes in „Toolbox“ verwenden

ShortCodes sind eine sehr praktische Sache. Anfang April hatte t3n die stattliche Zahl von 15 nützlichen ShortCode-Plugins vorgestellt. Neben dem weitverbreiteten Pluginpaket „Jetpack“, das eine Reihe solcher Helfer mitbringt, haben viele Themes heute solche individuellen Helfer parat.

Unschön wird es, wenn man einen Theme-Wechsel vollzieht oder aus irgendwelchen Gründen auf das Plugin, das die ShortCodes zur Verfügung stellte, ersetzen oder ganz darauf verzichten will. Die ShortCodes bleiben in den Artikeln sichtbar – aber ohne Funktion. Im Titelbild zeige ich ein typisches Beispiel. Es heißt also, gut überlegen, welches Theme oder auch welches Plugin man für diese Aufgabe einsetzen möchte.

AddQuickTag

Seit es die Toolbox von Sergej Müller gibt, ist der WordPress-Nutzer ein bisschen flexibler. Ich habe dort einige ShortCodes eingebunden, die mir nun theme- und pluginunabhängig in meinen Blogs zur Verfügung stehen. Um diese Shortcodes im Editor von WordPress sichtbar zu machen, gibt es auch Plugin-Lösungen. Ich verwende dafür eine Schaltfläche namens „Insert Shortcodes“ des Editor-Plugins „Ultimate TinyMCE„.

Eine andere Möglichkeit ist die Verwendung des Plugins AddQuicktags.

Hier ein paar Beispiele, die ich hier und im Netzexil aktiv nutze.

Blaue Box. Daneben gibt es noch eine Reihe weiterer Farben

So kann man, wenn man sich ein bisschen mit PHP auskennt und in ShortCode-Plugins zurechtfindet, das eine oder andere Codefitzelchen klauen und in die „Toolbox“ einfügen. Die entsprechenden CSS nicht vergessen. :-)

Self-Ping unterdrücken

Wer häufig auf ältere Artikel im eigenen Blog Bezug nimmt, der wird sich über so genannte Self-Pings schon geärgert haben. Sie wandern i.d.R. in die Warteschleife und man muss sie jeweils eigens freigeben oder löschen.

Mit einem Code-Fitzelchen, das man in die functions.php seines Themes kopiert ist das zu beheben. Die Self-Pings werden unterdrückt bzw. nicht angezeigt. Ein Plugin braucht es dazu nicht.  Wer lieber die Toolbox von Sergej dafür nutzt, hat eine weitere Option zur Verfügung.

Hier der Code:

//remove pings to self
function no_self_ping( &$links ) {
$home = get_option( 'home' );
foreach ( $links as $l => $link )
if ( 0 === strpos( $link, $home ) )
unset($links[$l]);
}
add_action( 'pre_ping', 'no_self_ping' );

Quelle