Als erfahrener Plugin-Programmierer testet man seine Plugins nicht nur mit der allerneuesten WordPress-Version, sondern auch mit vorherigen Versionen, denn es gibt eine Menge älterer WordPress-Installationen. Man hat also die verschiedensten Versionen auf dem Entwicklungsserver installiert und möchte sein neuesten Codeänderungen mit jeder dieser Versionen testen. [Read more…]
Einfachere Plugin-Entwicklung durch Verschieben des Plugin-Verzeichnisses
Die geheimnissvolle Selectbox in WordPress
Neulich wollte ich auf der Optionsseite eines Plugins eine Selectbox mit 5 Einträgen erstellen. Nicht einfacher als das:
<select size="5"> <option "test1" /> <option "test2" /> <option "test3" /> <option "test4" /> <option "test5" /> <option "test6" /> </select>
Jeder, einschließlich mir, erwartet folgende Ausgabe:

Tatsächlich wird aber folgendes angezeigt:

Das Geheimnis liegt im stylesheet des Admin-Bereichs:
#wpcontent select { padding: 2px; height: 2em; font-size: 12px; }
Dadurch wird jede Selectbox auf einen Eintrag reduziert. Warum dies so definiert ist bleibt mir schleierhaft. Zu diesem Thema existiert auch ein Ticket im WordPress-Trackingsystem, in dem das Problem seit zwei Jahren diskutiert wird.
Die Lösung des Problems ist relativ einfach:
<select style="height:auto" size="5">
Sieht einfach aus, hat mich aber eine Stunde meiner Lebenszeit gekostet.
Barcamp Mainz 2011, Erlebnisse eines Anfängers (2. Tag)
Auftakt
(Foto: netzkultur)
Die Anfahrt zum Camp war heute noch einfacher als gestern, denn Sonntags morgens um 8:15 Uhr ist nicht wirklich viel auf den Straßen los. Parkplatz war auch wieder fast leer und so war der abschließende Fußweg sehr kurz.
(Foto: netzkultur)
Beim Frühstück war es heute wesentlich ruhiger als am Vortag, die meisten klammerten sich an einen Becher Kaffee, starrten auf ihren Monitor oder saßen einfach nur rum. Der erste Tag schien vielen noch in den Knochen zu stecken. Mir ging es nicht anders, 9 Uhr am Sonntag morgen ist auch nicht unbedingt meine bevorzugte Zeit, um wach zu sein. Nach zwei Bechern Kaffee (der wirklich lecker war) und drei halben Brötchen war ich dann bereit für die Sessionplanung.
[Read more…]
Barcamp Mainz 2011, Erlebnisse eines Anfängers (1. Tag)
(Foto: netzkultur)
Das Barcamp Mainz war mein erstes „richtiges“ Barcamp, dass das WordCamp Köln ja schon alle Sessions im Voraus geplant hatte. Ich hatte also keine Ahnung, was auf mich zu kam.
Die Anfahrt war auf jeden Fall schon mal sehr angenehm, da ich nur 20 km vom Veranstaltungsort, der Uni Mainz, entfernt wohne. Also um kurz nach Acht auf die Autobahn, in Mainz zwei-, dreimal abgebogen und schon war ich da. Parken war kein großes Problem, da sich ein großer (und vor allem kostenloser) Parkplatz direkt vor dem Gebäude befand. Der Tag fing also schon mal gut an. [Read more…]
WordPress: Neuladen von Skripts und Stylesheets erzwingen
Bei der Entwicklung von WordPress-Themes oder -Plugins taucht immer wieder das Problem auf, dass Skripte oder Stylesheets nicht direkt von der Quelle sondern aus einem Cache geladen werden, weil sie irgendwo auf dem Weg vom Server zum Browser zwischengespeichert werden. Es gibt verschiedenee Möglichkeiten dieses zu unterbinden, indem man z.B. den Browsercache in den Optionen ausschaltet oder ein Webentwicklungs-AddOn benutzt. Manchmal funktioniert das allerdings nicht, weil es die verschiedensten Möglichkeiten des Cachings gibt und man vielleicht nicht alle ausgeschaltet hat.
[Read more…]
WordPress: Benutzern das Passwort-Feld entziehen
Du hast also einen Benutzer erstellt und ihm ein gutes Passwort gegeben, damit die Sicherheit Deines Blogs nicht gefährdet wird? Leider kannst Du aber nicht sicher sein, dass der Benutzer dieses gute Passwort beibehält, denn er kann es ganz einfach auf seiner Profilesiete ändern.
Dieses Problem kann allerdings mit einem Filter gelöst werden:
[Read more…]
WordPress: Titel kürzen
Eine Frage, die immer wieder in WordPress-Foren auftaucht, ist, wie man den Titel auf eine bestimmte Anzahl Zeichen kürzen und ein „…“ anfügen kann.
Das Problem ist mit einigen Zeilen PHP schnell gelöst:
1 2 3 4 5 6 7 8 9 | add_filter( 'the_title', 'short_title' ); function short_title( $title ) { $chars = 20; if ( strlen( $title ) > $chars ) { $title = substr( $title, 0, $chars ); $title .= " …"; } return $title; } |
Die Variable $chars muss auf die Anzahl Zeichen gesetzt werden, die man maximal anzeigen möchte und in Zeile 6 muss der Platzhalter für den ausgelassenen Text eingefügt werden (… ist typografisch richtige Version für drei Punkte, Ellipse genannt).
Nachteilig an dieser Lösung ist, dass der Titel mitten in einem Wort abgeschnitten werden könnte. Wenn man möchte, kann man die Funktion entsprechend erweitern:
1 2 3 4 5 6 7 8 9 10 | add_filter( 'the_title', 'short_title' ); function short_title( $title ) { $chars = 20; if ( strlen( $title ) > $chars ) { $title = substr( $title, 0, $chars ); $title = substr($title, 0, strrpos( $title, ' ' ) ); $title .= " …"; } return $title; } |
Kopiert man diese Funktion in die funtions.php des Themes werden alle Aufrufe von the_title den eingefügten Angaben entsprechend gekürzt.
PHP/HTML: einfache und doppelte Anführungszeichen
Wenn ein PHP-Programmierer einen Link aus Variablen erstellt, kann man häufig folgenden Code sehen:
echo '<a href="' . $link . '" id="' . $id .'" class="' . $class . '">' . $linktext . '</a>';
oder
?> <a href="<?php echo $link; ?>" id="<?php echo $id; ?>" class="<?php echo $class; ?>"<?php echo $linktext; ?>"</a> <?php
oder
echo "<a href=\"$link\" id=\"$id\" class=\"$class\">$linktext</a>";
Abgesehen vom persönlichen Stil des Programmierers haben die Code-Beispiele eines gemeinsam: sie sind schlecht zu lesen.
„Klar!“, werden jetzt die Programmierer sagen, „In HTML müssen die Attribute in doppelten Anführungszeichen stehen und in PHP muss man eine der oben gezeigten Methoden verwenden“. Sicher? Müssen Attribute wirklich in doppelten Anführungszeichen stehen? Die einfache Antwort ist: Nein!
Ein Blick in die Spezifikation bringt Folgendes an den Tag:
[…]Standardmäßig verlangt SGML, dass alle Attributwerte entweder von doppelten Anführungszeichen (ASCII dezimal 34) oder einfachen Anführungszeichen (ASCII dezimal 39) begrenzt werden. Einfache Anführungszeichen können im Attributwert enthalten sein, wenn der Wert durch doppelte Anführungszeichen begrenzt ist und umgekehrt.[…]
Doppelte oder einfache Anführungszeichen. Das macht die Sache doch viel übersichtlicher:
echo "<a href='$link' id='$id' class='$class'>$linktext</a>";
Wie man sieht ist der Code viel leichter zu lesen und das, weil man einfach die Spezifikation gelesen hat.
WordPress: Paginierung der Plugintabelle ausschalten
Seit der Version 3.0 wird die Plugintabelle standardmäßig in Seiten aufgeteilt, 20 Einträge pro Seite. In meinen Augen ist die Funktion vollkommen nutzlos, denn sie bedeutet, das ich mich mühsam durch die Seiten klicken muss, anstatt mich einfach mit dem Mausrad durch die Einträge zu scrollen. Es gibt aber eine mehr oder weniger „versteckte“ Einstellung, um alle Plugins auf einmal anzuzeigen.
[Read more…]
WordPress Plugin Spam, Teil 2
Im Artikel Interessante neue Art von WordPress-Spam habe ich über eine Webseite berichtet, die Plugins anbietet um unbedarfte Nutzer auf eine Spam-Seite zu locken.
Seitdem war Rahul (der Mann hinter der Spamseite) nicht untätig. Ein deutscher Benutzer berichtete von Problemen mit seiner Webseite, die man ziemlich schnell auf Probleme mit einem Plugin zurückführen konnte. nach kurzer Recherche konnte ein Plugin namens Visitor Stats verantwortlich gemacht werden.
Ein kurzer Blick auf die bekannte Webseite bestätigte meinen Verdacht: Das Plugin wird von „111ways to make money“ angeboten. Interessanterweise wird das Plugin von dieser Seite selbst (nicht mehr) angeboten. Na gut, vielleicht hat Rahul einfach vergessen sie hochzuladen. Aber woher hat der Benutzer das Plugin bekommen?
Neueste Kommentare