WordPress – etwas mehr Platz im Backend

Man hat immer zu wenig Platz auf dem Monitor – egal wir groß er ist. Zumindest im WordPress-Backend kann man einige Pixel in der Breite einsparen, indem man das Navigations-Menü verkleinert.

[Read more…]

noteaser – Das unbekannte WordPress-Tag

Die meisten Nutzer werden das <!--more-->-Tag kennen, das es erlaubt, einen Anreißer (engl. „teaser“) zu erzeugen. Dabei wird auf der Hauptseite des Blogs der Text oberhalb des Tags angezeigt und nach dem Anklicken des „More“-Links die einzelne Artikelseite, auf der dann zusätzlich der Text nach dem Tag angezeigt wird.

Es kann aber Situationen geben, in denen man einen gesonderten Anreißer erstellen möchte. So bietet es sich z.B. bei einem reinen Photo-Artikel an, als Anreißer eine Collage zu nehmen. Im eigentlichen Artikel passt diese Collage nicht mehr so richtig. Oder man möchte im Anreißer eine Zusammenfassung des Artikels geben, der aber im Artikel selber nur stören würde.

Um diese Teile des Artikels auf der Artikelseite auszublenden kann man das wenig bekannte <!--noteaser-->-Tag benutzen:

Teaser Text. <!--more--><!--noteaser-->Artikel Text.

Das <!--noteaser-->-Tag muss direkt nach dem <!--more--> folgen, ansonsten wird es nicht beachtet.

Bei der Benutzung des Tags sind allerdings einige Dinge zu beachten:

  • Nach dem Anklicken des „more“-Links wird der Artikel bis an den oberen Rand des Browsers geschoben. Dies hat bei einem „normalen“ more-Artikel den Sinn, den Text vor dem more aus dem Blickfeld des Lesers zu schieben. Mit noteaser gibt es allerdings keinen solchen Text mehr und es verwirrt den Leser, wenn der Text ganz oben dargestellt wird. Besser wäre es, wenn die Überschrift oben stehen würde.
  • Der Text vor den <!--more--><!-&#45noteaser-->-Tags wird im Preview nicht angezeigt. Man muss also in zwei Stufen arbeiten: erst den Text wie üblich erstellen und erst ganz zum Schluss das <!--noteaser-->-Tag einfügen.
  • Es werden alle Zeilenumbrüche mit übernommen, so dass man die Tags und den folgenden Text ohne Umbruch hintereinander schreiben sollte, damit auf der Artikelseite keine unschöne Leerzeile über dem Artikeltext dargestellt wird.

Diese Unzulänglichkeiten lassen sich evtl. durch ein neues Plugin verbessern… Mal schauen. Ansonsten ist das Tag eine sehr schöne Möglichkeit sein Blog „anders als die anderen“ zu gestalten.

WordPress: Untertitel jetzt auch in einfach

Vor einiger Zeit habe ich beschrieben, wie man die Überschriften seiner Artikel mit Untertiteln versehen kann. Leider war die Methode etwas umständlich und nicht unbedingt inutitiv.
Wenig später schrieb Chris Coyier über Plugins, die er gerne hätte, aber keine Zeit hat, sie selber zu programmieren. Darunter war auch eine ordentliche Integration von Untertiteln in WordPress. 36Flavours hörte den Ruf und programmierte in kürzester Zeit das Plugin „SubHeading“, das die gestellte Aufgabe hervorragend löst.

Die Installation ist zwar einfach, bedarf aber einiger Handarbeit, denn der Funktionsaufruf the_subheading() muss in alle notwenigen Dateien eingefügt werden, denn es existiert kein Hook, um einen Text direkt nach der Überschrift einzufügen.

Im Editor erscheint hinter dem bisherigen Feld für die Überschrift ein weiteres für den Untertitel:

Das Plugin benötigt noch einige Justierungen in den Feinheiten. So muss man z.B. den Cursor mit der Maus in das Textfeld verschieben, weil es außerhalb der Tabulator-Reihenfolge liegt. Auch bei der Ausgabe gibt es noch einen kleinen Fehler. Ich habe den Autor aber angeschrieben und hoffe, dass diese kleine Probleme bald behoben sind.

Links:

WordPress: Untertitel im Feed


In diesem Artikel, wie man seinen Blog-Artikeln Untertitel hinzufügen kann. Das funktioniert für Artikel, Archive und Suchergebnisse wie beschrieben, allerdings gibt es für Feeds keine Templates.
Man könnte jetzt auf die Idee kommen, die Datei ../wp-includes/feed.php entsprechend abzuändern. Dies hat aber den Nachteil, dass die Änderungen bei jedem Update überschrieben werden. Hier wird eine Lösung vorgestellt, die das Problem mittels eines Minimal-Plugins löst.
[Read more…]

pagebar v2.55

  • Fixed: function name collision with YARPP.
  • Fixed: $_POST parameter collision with FireStat.
  • Added: contextual help

Download:

WordPress: pagebar 2.54

pagebar 2.54 removes a problem with the „Break comments into pages“ setting which could not be deselected. Unfortunately I had to remove the „show all comments“ feature since I have not found a different method to code this feature.

Additionally there are two more fixes:

  • Settings where not correctly inherited by multipagebar and commentbar.
  • Commentbar was displayed if only one page was present.

Download:

Hope I didn’t break anything else ;-)

Hello Dolly 2010

Since 2 weeks there’s a voting on Digging into WordPress whether to keep the Hello Dolly plugin in the standard distribution or to chuck it out the house.

One of the most heard reasons for the existence of Hello Dolly that it should be used as a pattern for novice plugin developers. In my mind the problem with this argumentation is that the plugin hasn’t changed essentially since WordPress v1.21 (the version which introduced plugins in May 2004).

Since then the environment for plugins has changed a lot. The main difference is that there are typically ten or more plugins installed on a blog. Therefore it’s mor important than ever that the plugins don’t interfere with each other. This can most easily be achieved by encapsulation and this leads inevitable to object-oriented programming. Here’s my attempt to take Hello Dolly to the next decade:

&lt; ?php
/**
 * @package Hello_Dolly
 * @author Matt Mullenweg
 * @version 1.5.1
 */
/*
Plugin Name: Hello Dolly
Plugin URI: http://wordpress.org/#
Description: This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from <cite>Hello, Dolly in the upper right of your admin screen on every page.
Author: Matt Mullenweg
Version: 1.5.1
Author URI: http://ma.tt/
*/
 
if (! class_exists('Hello Dolly')) {
	class HelloDolly { 
 
		function hello_dolly_get_lyric() {
			/** These are the lyrics to Hello Dolly */
			$lyrics = "Hello, Dolly
			Well, hello, Dolly
                        [...]
			It's so nice to have you back where you belong
			You're lookin' swell, Dolly
 
			Dolly'll never go away
			Dolly'll never go away again";
 
			// Here we split it into lines
			$lyrics = explode("n", $lyrics);
 
			// And then randomly choose a line
			return wptexturize( $lyrics[ mt_rand(0, count($lyrics) - 1) ] );
		}
 
		// This just echoes the chosen line, we'll position it later
		function hello_dolly() {
			$chosen = $this-&gt;hello_dolly_get_lyric();
			echo "<p>$chosen</p>";
		}
 
 
		// We need some CSS to position the paragraph
		function dolly_css() {
			// This makes sure that the posinioning is also good for right-to-left languages
			$x = ( 'rtl' == get_bloginfo( 'text_direction' ) ) ? 'left' : 'right';
 
			echo "
 
			#dolly {
				position: absolute;
				top: 4.5em;
				margin: 0;
				padding: 0;
				$x: 215px;
				font-size: 11px;
			}
 
			";
		} //dolly_css()
	} //class
}//if class_exists()
 
$HelloDolly = new HelloDolly;
 
if (isset($HelloDolly)) {
	add_action('admin_head', array(&amp;$HelloDolly, 'dolly_css'));
	// Now we set that function up to execute when the admin_footer action is called
	add_action('admin_footer', array(&amp;$HelloDolly, 'hello_dolly'));
}
 
?&gt;

As you can see all the code is encapsuled in the HelloDolly class and the only variable names visible to the rest of the system are class HelloDolly and $HelloDolly. It’s not very likely that there will be another plugin using the variables.
This may not be too important in this small plugin but it gives the user a good and up-to-date prototype for more complex code. Maybe this code will convince the 76% that this new Dolly is a cow that is not only sacred but also meaty.

WordPress: Überschriften mit Untertiteln

In vielen Zeitungen ist es üblich, unter die eigentliche Überschrift noch einen Untertitel zu setzen, um den folgenden Titel näher zu erläutern:

Durch diese Untertitel kann man den eigentlichen Titel etwas kreativer gestalten und anschließend erläutern. Leider bietet WordPress von Haus aus diese Funktion nicht an und so muss sie nachgerüstet werden. Als ersten Reflex würde der geneigte Programmierer eine Lösung per Plugin versuchen, allerdings gibt s auch eine Lösungmit Bordmitteln. Die Zauberworte lauten „Benutzerdefinierte Felder“ (engl. „custom fields“).

[Read more…]

WordPress: Überprüfen, ob ein Beitrag das more-Tag enthält

Manchmal möchte man einen Beitrag abhängig davon gestalten, ob er ein <!–more–>-Tag enthält oder nicht. Leider verfügt WordPress nicht über eine Funktion, um diese Prüfung vorzunehmen. Befindet sich der Beitrag innerhalb des Loops, so kann man aber folgende Funktion benutzen:

function hasMoreLink() {
	global $post;
	return strpos($post-&gt;post_content, '<!--nore-->');
}

(Bitte „nore“ mit „more“ ersetzen, konnte ich aber nicht eingeben, weil sonst WordPress das Tag auswertet.)
Danke an MichaelH aus dem englischen WordPress Forum

WordPress Plugins übersetzen

Viele WordPress-Nutzer bevorzugen eine deutsche Oberfläche, weil sie der englischen Sprache nicht mächtig sind oder es einfach als angenehmer empfinden, sich mit ihrem Blogsystem in ihrer eigenen Muttersprache zu verständigen.
Für das Basissystem von WordPress wird mit großem Enthusiasmus vom wordpress-deutschland.org-Team eine Übersetzung bereitgestellt. Viele Plugins allerdings nicht nur in englischer Sprache verfügbar, was nicht nur den Nutzer verwirrt, wenn plötzlich Meldungen in einer anderen Sprache erscheinen, sondern auch ein uneinheitlichen und unprofessionelles Bild ergibt.

Zum Glück ist es in WordPress aber relativ einfach, Plugins in eine andere Sprache zu übersetzen. Sofern das Plugin es vorsieht und die Funktion __() (Doppelunterstrich) oder _e() für die Textausgaben benutzt. Diese Funktionen benutzen die gettext Bibliotheken und Werkzeuge.
[Read more…]