Twitter Button über Api-Call ohne Javascript oder iFrame

Standartmäßig wird der Twitter Button über Javascript eingebunden, alternativ gibt es die Möglichkeit ohne Javascript den Button über ein iFrame in Webseiten einzubinden. Aber auch das geht nicht ohne extra Ladezeit zu generieren. Hat man z.B. auf der Startseite die letzten 5 bis 10 Artikel und möchte auch dort schon zu jedem Artikel den Twitter Button anzeigen lassen, wird für jeden Button jeweils einmal eine komplette HTML-Seite geladen. Denn ein iFrame ist nichts anderes als eine Webseite in einer Webseite. Man kann also auch sagen, dass über eine solche Startseite nicht nur die eine eigene angezeigt wird, sondern gleich mal elf an der Zahl. Eigentlich eine ganz schlechte Wahl.

Über folgenden Tweet von Macx bin ich darauf aufmerksam geworden, dass das auch noch anders geht.

Gesucht, gefunden! Nicolas Gallagher beschreibt in seinem Blog wie man es macht. Aus Zeitmangel von mir leider noch ungetestet, klingt aber vielversprechend.
Custom Tweet Button for WordPress

How to create a custom Tweet Button for WordPress using the bit.ly and Twitter APIs. The HTML and CSS is completely customisable and there is no need for JavaScript. PHP is used to automatically shorten and cache the URL of a post, fetch and cache the number of retweets, and populate the query string parameters in the link to Twitter.

WordPress: Facebook das richtige Bild für “geteilte” Artikel mitteilen

Nachdem ich jetzt schon mehrmals darüber geschimpft habe, dass mir beim automatischen Artikel posten die falschen Bilder eingefügt werden, habe ich mich jetzt endlich mal damit beschäftigt und nachgelsesen, was man machen muss. Es ist relativ einfach, für Facebook gibt es einen extra meta-tag, der im Header eine Bildquelle angibt.


<meta property="og:image" content="<?php echo $img_url; ?>" />

Hier mein Lösungsansatz, wie ich das in WordPress umsetze.
Für die Wahl der Bildquelle nehme ich mir das Plugin get_the_image von Justin Tadlock zu Hilfe. Über die Funktion get_the_image(); rufe ich das Plugin in meinem Theme auf. Das Plugin überprüft automatisch Custom Fields, Artkelbild oder auch den Artikel selbst nach Bildern, je nach Parametern wird eine dieser Bildquelle gewählt.

Auf Facebook wird in der Regel entweder die Startseite oder ein einzelner Artikel verlinkt. Also frage ich dies zunächst ab. Für die Startseite kann ich einfach ein generelles Bild, z.B. ein Logo, festlegen.


<?php
   if (is_single()) {
      global $posts; // da ausserhalb der Loop
      if ( function_exists( 'get_the_image' ) ) {
         $img_url = get_the_image( array( ... ) );
      }
   } else { 
      $img_url = get_bloginfo('template_url').'/g/fbdefault.jpg'; 
   } ?>
<meta property="og:image" content="<?php echo $img_url; ?>" />

WordPress: Facebook das richtige Bild für “geteilte” Artikel mitteilen weiterlesen

WordPress: Anzahl der Kommentare je Artikel ausgeben

Da eigentlich in jedem WordPress Theme die Anzahl der Kommentare ausgegeben werden, ist das hier sicherlich ein alter Hut, gewundert hat es mich trotzdem. Da ich das via Google nicht gleich gefunden habe, schreibe ich es hier auf.
Um die Anzahl der Kommentare auszugeben, habe ich mich auf die Suche nach der passenden Funktion gemacht und zunächst fündig geworden.
wp_count_comments()
Etwas erweitert und in die Loop gehängt, wurden mir auch schon zu jedem Artikel die Anzahl der Kommentare angezeigt. Wenn man möchte, kann man sich über diese Funktion das ganze unterschieden in ‚moderated‘, ‚approved‘ und ’spam‘ ausgeben lassen. Schön, dachte ich und staunte nicht recht, als ich plötzlich bemerkte, dass für mein Theme plötzlich über 70 Datenbankanfragen nötig waren. Da ich auf der Startseite 50 Artikel (nur mit Titel) ausgebe, kommt da also jedes mal ein Datenbankzugriff hinzu. Über 70 ist aber definitiv zu viel.

Es gibt aber auch eine Möglichkeit ganz ohne zusätzlichen Ballast diese eine Zahl pro Artikel ausgeben zu lassen. Schon mit der ganz einfach Loop wird diese Zahl nämlich für jeden Artikel ausgelesen, da sie ebenfalls in Tabelle wp_posts in einer Spalte gespeichert wird. $post->comment_count

Eine einfache Umsetzung könnte also wie folgt aussehen.

<?php
$kommentare = 0;
$kommentare = $post->comment_count;
if($kommentare > 1) echo $kommentare." Kommentare";
elseif ($kommentare == 1) echo $kommentare." Kommentar";
else echo "keine Kommentare";
?>

Die ausgegebene Zahl beinhaltet zwar auch nur veröffentlichte Kommentare, soweit ich weiß wird dabei aber nicht unterschieden zwischen echten Kommentaren und Trackbacks.

WordPress: Artikel kollaborativ erstellen

Ich arbeite weiter an der Umsetzung meiner Ideensammlung, heute mal wieder:

Voransicht für Drafts

Gemeint ist eine öffentliche Voransicht für Entwürfe, um damit anderen Usern bereits vor der Fertigstellung eine Möglichkeit zu geben den Text/Inhalt zu korrigieren und zu ergänzen. Immer dann wenn es um Wissenerarbeitung und Wissensvermittlung geht, Texte oder auch einfach Sammlungen (Links, Bilder, Ideen) kollaborativ entstehen sollen, ist eine öffentliche Voransicht sinnvoll. Der Unterschied zu dem was man bereits mit den Grundfunktionen von WordPress über die User-Rollen erstellen kann, ist das Wörtchen „öffentlich“. Es soll nicht nur eine mit Userrechten ausgestattete Redaktion gleichzeit daran arbeiten können, sondern jeder. Vergleichbar dem Wiki-Prinzip mit dem Unterschied, dass es einen Zeitpunkt der Veröffentlichung gibt, der Artikel den Wiki-Status also verläßt. WordPress: Artikel kollaborativ erstellen weiterlesen

WordPress: Wissenvermittlung über Blogs, technisch betrachtet Teil 1

Eines der wesentlichen Merkmale eines Blogs ist das umgekehrt chronologische Auflisten der Arikel, der neueste Beitrag steht also ganz oben. Natürlich hat sich mittlerweile auch das „Magazin“ Theme durchgesetzt, aber auch da bekommt man dann meist innerhalb einer oder mehrerer Kategorien die neuesten Artikel ganz oben zuerst präsentiert.

Aus Lesersicht eignet sich das für News, also Beiträge mit starkem Bezug zur Aktualität, sehr gut. Ich bekomme zuerst das zu Lesen, was gerade neu ist und kann als Leser dann selbst entscheiden wie weit ich in die Vergangenheit zurück blättere. Anders verhält sich das bei Themen, die eher der Wissenvermittlung zuzuordnen sind. Als ich angefangen habe mich mit WordPress auseinander zu setzen, geschah das natürlich auch zuerst über Blogs wie die von Frank Bültge und Perun. Später habe ich mir dann trotzdem auch noch einmal das Buch (2. Auflage) von Frank gekauft, da ich das Gefühl hatte dadurch noch etwas intensiven Input zu bekommen, als wenn ich immer nur das auf den Blogs suche, wenn ich etwas brauchte. WordPress: Wissenvermittlung über Blogs, technisch betrachtet Teil 1 weiterlesen

WordPress: Artikeltitel filtern und in 2 Zeilen ausgeben

Heute greife ich einen weiteren Punkt meiner Ideensammlung auf und manipuliere die Ausgabe des Beitragstitels. 🙂
Folgende Aufgabe hatte ich mir gestellt:

Beitragstitel mit Untertitel -> Filter auf the_title(): aus Frank Bültge im Interview: Was treibt WordPress Entwickler an? wird ersetzt zu Frank Bültge im Interview
Was treibt WordPress Enwickler an?

Kernstück ist die PHP Funktion explode();, welche einen String anhand einer vorgegebenen Zeichenkette teilt. explode(": ", $title_text, 2); teilt damit den Beitragstitel wenn darin ein Doppelpunkt einem Leerzeichen folgt. Der letzte Parameter „2“ gibt an, dass unsere Überschrift in maximal zwei Teile geteilt wird. Gibt es in der Überschrift zwei Mal die Zeichenkette „: “ wird also trotzdem nur beim ersten Doppelpunkt getrennt.

Hier die kompletten Codezeilen, die in die functions.php gehören.

function sp_title_filter($title_text)
{
$teile = explode(": ", $title_text, 2);
if ($teile[1]) {	
	return "".$teile[0]."
".$teile[1]; } else return $title_text; } add_filter('the_title', 'sp_title_filter', 1);

Kurzmeldungen ohne Headline und Permalink ausgeben

Blogseiten wie die von WordPress Deutschland oder Matt Mullenweg sind prominente Beispiele für unterschiedliche Ausgabe von verschiedenartige Postings. Da gibt es zum einen die normalen Beiträge mit Überschrift und allem was man gewohnt ist und ausserdem noch eine Art Kurzmeldungen. Zwei oder drei Zeilen, die meist einfach auf ein paar Links hinweisen sollen. Solche Meldungen sind in der Regel zu kurz, um da dann auch noch eine Überschrift zu setzen. Twitter macht es ausserdem vor, ein paar Worte und der Link, fertig ist das Update.

Im Blog habe ich das jetzt auch mit folgender Anpassung im Einsatz:

<?php if (have_posts()) : ?>
	<?php while (have_posts()) : the_post(); ?>
	<div class="post">

		<?php if (!in_category( array( 'kurz-notiert', 'verlinkt' ) )) { ?>
		<h2><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>
		<?php } else { 
		echo "<small>";
		the_category(' & ');
		echo "</small>"; 
		}?>
		<?php the_content(); ?>
		<?php comments_template(); ?>

	</div>
	<?php endwhile; ?>
<?php endif; ?>

Befindet sich also ein Beitrag nicht in der Kategorie ‚kurz notiert‘ oder ‚verlinkt‘, wird ein dieser Beitrag ganz normal mit Headline usw. ausgegeben. Ist doch mindestens eine beiden Kategorien ausgewählt, werden statt einer Headline die Kategorienamen innerhalb von <small></small> ausgegeben.

xHTML, CSS, PHP und Javascript Syntax richtig darstellen

Da ich hier über Webentwicklung schreiben möchte, muss ich auch immer wieder Codeschnipsel einfügen und um auch bei längeren Codestücken nicht den Überblick zu verlieren, werden diese in der Regel eingefärbt. Das erhöht die Lesbarkeit der Codezeilen und setzt sich besser vom übrigen Text ab, hilft also auch zur Textstrukturierung.

<!-- html Grundgerüst -->
<html>
  <head>
    <title>Titel der Website</title>
  </head>
  <body>
    <h1>die erste Überschrift</h1>
    <p>Lorem ipsum dolor sit amet..</p>
  </body>
</html>

xHTML, CSS, PHP und Javascript Syntax richtig darstellen weiterlesen