Sort posts by modification date in WordPress

By default, WordPress sorts blog posts by creation date. However, if you update your blog posts from time to time, you may want to sort them by modification date rather than creation date.

To achieve this, use this snippet:

function order_posts_by_mod_date($orderby) {
  if  (is_home() || is_archive() || is_feed()) {
    $orderby = "post_modified_gmt DESC";
  }

  return $orderby;
}

add_filter('posts_orderby', 'order_posts_by_mod_date', 999);

In your theme, just dump this snippet into functions.php. (You may need to create this file in your theme’s directory.)

Neue Blogstruktur

Seit gestern gibt es eine neue Struktur auf meinem Blog – ich habe ihn nämlich geteilt. Es gibt jetzt einen technikblog (blau) und einen privatblog (orange). Im technikblog wird es sich allgemein um Technik (hauptsächlich Computer) drehen, während im privatblog alle privaten und sonstigen Themen behandelt werden.

Attachment “/www/htdocs/w00947c7/wordpress/wp-content/uploads/2008/01/image.png” not found

Zwischen den beiden Blogkategorien kann man mit Hilfe des Links neben der Überschrift wechseln. Außerdem gibt es für beide Bereiche jetzt zusätzlich getrennt RSS-Feeds, die ihr in der Sidebar finden könnt.

image.png image.png

Ein paar Sachen müssen noch angepasst (hauptsächlich beim privatblog) und die Blogkategorien noch überarbeitet werden. Aber ansonsten ist alles fertig.

Noch ein Nachtrag für alle (WordPress verwendenden Leute), die es interessiert, wie ich die neue Blogstruktur erstellt habe: Die Lösung wurde vollständig über mein WordPress-Theme gelöst. (Aus Ermangelung an Zeit habe ich nicht versucht, dafür ein Plugin zu schreiben.) Dafür habe ich WordPress Page Templates, die Multiple Loop Technik und folgendes Codeschipsel (um mehrere Seiten zu erhalten) verwendet:

query_posts('category_name='.$strCatName.'&paged='.$wp->query_vars['paged']);

Bug in WordPress

Bin heute auf einen doofen Bug in WordPress (meiner Blog-Software) gestoßen. Dieser Fehler führt dazu, dass unter bestimmten Umständen alle folgenden Blog-Einträge komplett fett dargestellt werden.

Für die Leute, die HTML bzw. XML lesen können: Es liegt daran, dass der WYSIWYG-Editor von WordPress manchmal folgende Tags in den Eintrag einbaut (Weiß eigentlich irgendwer, wie man in sein Posting bitte einen HTML-Code-Block einfügt?):

Fehlerhafte Tags

Diese haben zur Folge, dass aller nachfolgende Text (auch der der anderen Beiträge) fett bzw. kursiv dargestellt wird. Und das sieht natürlich hässlich aus. Nach einiger Suche bin ich dann endlich auf die Lösung gestoßen. Dieser Fehler ist bei WordPress bereits bekannt und wird laut der Bug-Seite in der Version 2.1 gefixt sein.

Es wird dort allerdings auch einen Workaround genannt, so dass mein Blog jetzt endlich wieder ordnungsgemäß seine Arbeit verrichtet. Für diesen Workaround muss unter “Optionen” –> “Schreiben” die Option “WordPress soll invalide eingearbeitetetes XHTML automatisch korrigieren.” aktiviert sein. Dann muss in die Methode balanceTags() (in der Datei wp-includes/functions-formatting.php) folgender Code (in WP-Version 2.0.4 ist das Zeile 462):

// If self-closing or '', don't do anything.
if((substr($regex[2],-1) == '/') || ($tag == '')) {
}

durch folgende Code ersetzt werden:

if (substr($regex[2],-1) == '/') {
  //if not one of the self-closing tags, remove the '/'
  if (   (substr($regex[2], 0, 2) != ('br' || 'hr'))
      || (substr($regex[2], 0, 3) != ('img'))
      || (substr($regex[2], 0, 5) != ('input'))) {
    $regex[2] = substr($regex[2], 0, -1);
  }
}

Damit werden solche Tags entfernt. Die Änderung wirkt sich allerdings nur beim Speichern von Einträgen aus. D.h. der problematische Eintrag muss einfach noch einmal editiert und wieder abgespeichert werden.

Upload arbitrary files to WordPress (new plugin)

WordPress is very restrictive when it comes to file uploads. It’s for security reasons, mainly to prevent bad-behaving users to upload PHP scripts and the like to the blog.

However, if you’re the only one writing posts for your blog, this restriction sometimes is annoying. For example, I do a lot coding in C#. So, when I try to upload a .cs file (C# source code file) to my blog, the upload is rejected.

Wordpress rejected upload with "Sorry, this file type is not permitted for security reasons."

Files are approved or rejected based on their file extension, i.e. the few characters after the dot in the file name, like cs in ArrayClearTest.cs.

WordPress maintains an internal list of which file extensions are allowed. Fortunately, WordPress also allows for this list to be extended.

And that’s what my new WordPress plugin does. It’s called Upload File Type Settings Plugin and allows you to extend that list with an easy-to-use user interface. Go, give it a try.

The plugin's settings page.

BlogText – the new blog text

I’ve just finished my first WordPress plugin. It’s called BlogText and provides a nice, easy, alternative syntax (im comparison with HTML) for writing blog posts. I’ve been working on the for the past couple of months and now it’s finally finished — at least its first version. You can find it here:

http://blogtext.mayastudios.com

Give it a try. You might like it