Ideen für pagebar v3 – Teil 1: Direkter Zugriff auf Seiten

Es ist Zeit sich Gedanken über Version 3 des pagebar plugins zu machen. In dieser Artikelserie versuche ich zu erklären, was ich plane und lade Euch dazu sein, diese Pläne mit mir zu diskutieren.

Direkter Zugriff auf Seiten

Ich wollte schon immer eine Möglichkeit schaffen, einfach und schnell auf bestimmte Seiten zugreifen zu können. Die einfachste Möglichkeit wäre natürlich eine Dropdown-Auswahlbox mit allen Seitenzahlen. Dies ist vielleicht noch handlich, wenn das Blog ca. 10 Seiten enthält, aber wenn man ein Blog mit beispielsweise 300 Seiten hat, ist ein solches Eingabeelement nicht wirklich praktisch:
Continue reading Ideen für pagebar v3 – Teil 1: Direkter Zugriff auf Seiten

Neue Version von pagebar veröffentlicht (v2.60)

Wie sich leicht aus dem Titel schließen lässt, handelt es sich bei der neuen Version nicht um v3.0, wie ich für diesen Sommer eigentlich geplant hatte. Prokrastination pur!

1.

Stattdessen gibt es ein “kleines Update” auf v2.60 mit einigen Features, die leicht einzubauen waren. Zuerst enthält das Plugin einen neuen Default-Stil basierend auf CSS3:

Um das neue Layout zu aktivieren muss man die Datei pagebar.css in das aktuelle Theme-Verzeichnis kopieren.

2.

Ich habe mir die Empfehlung von Pippin zu Herzen genommen und einige Aktionen eingebaut:

  • pagebar_before/pagebar_after (Diese Aktion wird bei jedesmal ausgeführt.)

Zusätzlich hat jede “Bar” ihre eigenen Aktionen:

  • postbar_before/postbar_after, commentbar_before/commentbar_after, multipagebar_before/multipagebar_after

3.

Ein Hauptproblem von pagebar war, dass das automatische Einsetzen der pagebar auch bei sekündären Queries ausgelöst wurde, wie es von vielen Themes genutzt wird, um z.B. “Neueste Artikel” im Sidebar anzuzeigen. Seit der WordPress-Version 3.3 existiert die function “is_main_query()", womit es jetzt möglich ist, pagebar nur einmal unter der Haupt-Query anzuzeigen. Ich hoffe, das funktioniert auch mit allen Themes, da @toscho meinte, es könne damit evtl. Probleme geben.

4.

Schließlich gibt es eine neue Sprachdatei: Rumänisch (ro_RO). Die Datei habe ich schon vor Ewigkeiten erhalten, ich bitte Web Geek Science um Entschuldigung.

Links:

WordPress: Artikel in der Vergangenheit veröffentlichen

Es kann Situationen geben, in denen man einen Artikel in der Vergangenheit, also mit einem Datum vor dem heutigen Tag, veröffentlichen möchte. Auf den ersten Blick bietet WordPress keine Option, die dies ermöglicht, Auf den zweiten Blick findet man aber auf der Seite “Neue Artikel erstellen” in der Metabox “Publizieren” folgenden Eintrag:

Wenn man auf Editieren klickt, erscheint ein Feld, in dem man das gewünschte Veröffentlichungsdatum angeben kann:

Hier kann man nicht nur ein Datum in der Zukunft angeben, sondern auch ein Datum in der Vergangenheit. Hat man das Datum eingegeben, sollte man nicht vergessen OK zu drücken, da sonst das Datum bei der Veröffentlichung nicht übernommen wird:

Drückt man jetzt auf Veröffentlichen wird der Artikel sofort mit dem oben eingestellten Datum veröffentlicht und entsprechend in die Artikelreihenfolge einsortiert.

Update: Monika Thon-Soun hat mich darauf hingewiesen, dass diese Vorgehensweise nicht unbedingt zu empfehlen ist, wenn man Wert auf eine gute Platzierung in Suchmaschinen legt, weil der nachträgliche Eintrag diese wohl verwirrt.

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:

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:

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.

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: 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 😉

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.
Continue reading WordPress Plugins übersetzen

WordPress: Absprung im Plugin-Bereich v2.7

[English version]

Frank Bültge beschreibt in seinem Posting “WordPress Plugins bereichern“, wie man die Bedienungsfreundlichkeit seines Plugins steigern kann, indem man einen Link zu den Options-Seiten neben die Deaktivieren- und Bearbeiten-Links platziert. Mit Version 2.6 funktioniert das so:

function addConfigureLink($links, $file) {
  static $this_plugin;
  if (!$this_plugin) {
    $this_plugin = plugin_basename(__FILE__);
  }
  if ($file == $this_plugin) {
    $settings_link = '' . 
      __('Settings') . '';
    $links = array_merge( array($settings_link), $links);
  }
  return $links;
}

add_filter("plugin_action_links", "addConfigureLink", 10, 2);

Bei dieser Methode wird allerdings für jedes Plugin die Funktion addConfigureLink aufgerufen… und sehr übersichtlich sieht es auch nicht aus.

Das haben sich offensichtlich auch die WP-Entwickler gedacht und haben den Filter verbessert:

function addConfigureLink( $links ) { 
  $settings_link = 'Settings'; 
  array_unshift( $links, $settings_link ); 
  return $links; 
}

$plugin = plugin_basename(__FILE__); 
add_filter("plugin_action_links_$plugin", 'addConfigureLink' );

Jetzt muss die Funktion addConfigureLink nicht bei jedem installierten Plugins überprüfen, welche Plugindaten gerade aufgerufen werden und der Code wird übersichtlicher.

Abschließend bleibt wie immer die Überlegung, ob man solche “frischen” Filter sofort nutzen soll und damit die Kompatibilität zu vorherigen WordPress-Versionen zerstört oder ob man wartet, bis sich die neue Version ausreichend verbreitet hat. Meine Meinung dazu gibt’s bei identi.ca (schamlose Werbung!).

Update: There an English version of this posting available.

Using Komodo’s calltips with WordPress

Can you remember all the function parameters of the various WordPress API/actions and functions? Are you a regular visitor of the Codex for looking up the vaults of the zillion possibilities WordPress is giving you to code your plugins?

Well this will never change, I’m afraid, but you can make your life much easier if you’re coding your plugins with ActiveState’s Komodo Edit because it’s got the facility to extend the standard calltips with your own calltips, in this case the WordPress function calls:

Store the latest WordPress distribution on your machine. You do not need a web server being installed or any other second party software. Simply download the file and extract them into a directory.

Add the directory path to Komodo Edit: Edit/Preferences/Languages/PHP

komodo

In this case I inserted <code>z:/www/wp25</code>.

If you now enter a WordPress function (in this example add_action) Komodo will show you some informative inforamtion about it:

komodo2

Great, that was easy, wasn’t it?

WordPress Crazyhorse … no thanks!

Today I took a look and the new proposal for the next WordPress release. And I don’t like it … at all! It looks like the first incarnation of Google Reader and they changed it for good reasons.


(click to enlarge)

The interface looks totally clumsy, like a design from 2006. The left sidebar takes away a lot of the space for the text editor (about 12 columns on my screen). The editor looks somewhat lost inside the two sidebars.

The setting page is somewhat inconsistent. You select the option “Utilities/Settings” in the left sidebar but the next selections have to be made on the top of the window:


(click to enlarge)


The current (v2.5.1) design looks much lighter, much more today. If I want to have a menu structure like in Crazyhorse I better install WordPress Admin bar (which I actually have). Maybe this plugin should make it into the core?


(click to enlarge)