WordPress: IDs *aller* Post-Tags ermitteln

WordPress enthält eine Funktionen, um die Tags die zu einem Artikel gehören zu ermitteln (get_the_tags), es gibt allerdings keine Funktion, die alle auf der Webseite vorhandenen Tags ermittelt.

Die Lösung ist relativ einfach, wenn man daran denkt, dass Tags lediglich vordefinierte Taxonomien sind und man die zugehörigen IDs mit der Funktion get_terms bestimmen kann:

$tag_ids = get_terms( 'post_tag', array('fields' => 'ids', 'get' => 'all' ) );

Lustigerweise enthält WordPress eine Funktion, um die IDs aller Kategorien zu erhalten (get_all_catgory_ids).

WordPress: Aufregen über schlecht programmierte Plugins

Neulich stolperte ich über ein Plugin, das einen wirklichen Mehrwert liefert, aber leider so miserabel programmiert ist, dass ich niemanden mit gutem Gewissen den Einsatz empfehlen kann. Obwohl es schon eine größere Anzahl von „You’re doing it wrong“-Blogartikeln gibt, muss ich einfach einen weiteren Artikel darüber schreiben, da dieses nicht näher benannte Plugin so viele Dinge gleichzeitig falsch macht.
WordPress: Aufregen über schlecht programmierte Plugins weiterlesen

Einfachere Plugin-Entwicklung durch Verschieben des Plugin-Verzeichnisses

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. Einfachere Plugin-Entwicklung durch Verschieben des Plugin-Verzeichnisses weiterlesen

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.

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.
WordPress: Neuladen von Skripts und Stylesheets erzwingen weiterlesen

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:
WordPress: Benutzern das Passwort-Feld entziehen weiterlesen

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 .= " &hellip;";
  }
  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 (&hellip; 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 .= " &hellip;";
  }
  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.

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.
WordPress: Paginierung der Plugintabelle ausschalten weiterlesen

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?

WordPress Plugin Spam, Teil 2 weiterlesen

Interessante neue Art von WordPress-Spam

E scheint eine neue Art zu geben, wie Spammer versuchen Benutzer auf Spam-Seiten zu locken: WordPress Plugin Spam

Wie die meisten anderen Autoren überprüfe ich regelmäßig, was andere über meine Plugins sagen. Tatsächlich habe ich einen Google Alert auf die Namen gesetzt. Neulich erhielt ich eine Mail, die mir mitteilte, dass es einen neuen Fork meines pagebar-Plugins namens Advance pagebar gibt. Cool, da hat jemand ein neues Plugin auf Basis meines Codes geschrieben.

Das Plugin heißt komplett „Advance Pagebar – New way to navigate Pages …“. Überraschenderweise funktionierte der Link „http://wordpress.org/extend/plugins/advance-pagebar/“ nicht. Was war da los?

Interessante neue Art von WordPress-Spam weiterlesen