…echt, so lange ist das schon wieder her? Tatsächlich habe ich heute vor genau 15 Jahren meinen ersten Blogbeitrag veröffentlicht, damals noch unter der Adresse egm.editthispage.com – denn Blogsoftware für den eigenen Webspace gab es noch nicht wirklich, man musste also auf Fremdanbieter mit Manila-Server ausweichen. Ich hatte damals gigantische 50MB Webspace bei einem befreundeten Serverbetreiber angemietet, Datenbank gabs keine und man konnte Perl-Scripts laufen lassen. Und es war jedem noch klar, dass sich Weblog aus dem Begriff “Logbuch” ableitet, es somit DAS Weblog heißt. Weiterlesen

Aus aktuellem Anlass Notiz an mich selbst: wenn man die Einzelansicht der Beiträge in einer bestimmten Kategorie mit einer eigenen Seitenvorlage darstellen will, dann reicht das folgende Codeschnipsel in der functions.php:

//Fragt den slug der Kategorie des Beitrags ab und wendet single-[kategorieslug].php als Template an, wenn vorhanden
add_filter('single_template', create_function(
  '$the_template',
  'foreach( (array) get_the_category() as $cat ) {
    if ( file_exists(TEMPLATEPATH . "/single-{$cat->slug}.php") )
      return TEMPLATEPATH . "/single-{$cat->slug}.php"; }
    return $the_template;' )
);

Wenn man ein Child-Theme nutzt, muss man noch TEMPLATEPATH durch STYLESHEETPATH ersetzen. Danach noch eine Vorlagendatei im Template-Verzeichnis erzeugen, die single-[kategorieslug].php heißt (Kategorieslug durch den Kurznamen der gewünschten Kategorie ersetzen) – fertig.

Quelle: WordPress-Forum

Wenn man WordPress-Themes entwickelt oder den Auftrag zur Weiterbearbeitung bekommt, ist es oft wichtig herauszufinden, mit welcher Template-Datei die aktuell angezeigte Seite gerendert wird. Das lässt sich einfach herausfinden: einfach den folgenden Codeschnipsel in die Datei functions.php des verwendeten Themes kopieren, dann wird die verwendete Template-Datei für eingeloggte User in einem HTML-Kommentar im Header der Seite ausgegeben:
add_action('wp_head', 'show_template');
function show_template() {
global $template;
if(is_user_logged_in()) {
echo '\n\n<!--// Template: '; print_r($template); echo '//-->\n\n';
}
}

Das Plugin W3 Total Cache ist eine tolle Möglichkeit, die eigene Website deutlich schneller zu machen. Wenn man Beiträge nachträglich ändert oder Seiten speichert, muss man jedoch den Cache manuell leeren, damit die Änderungen auf der Website sichtbar werden. Dafür gibts das Plugin W3 Total Cache Purge All Page, das den Cache leert, sobald man einen bestehenden Beitrag ändert.

Sofern man aber auch Benutzerdaten in seine Pages eingebunden hat, reicht das nicht aus – denn wenn ein Benutzer seine Daten ändert, werden nach wie vor die alten Daten aus dem Cache auf der Website angezeigt. Das lässt sich mit wenigen Zeilen Code in der Datei functions.php beheben:

/* Cache leeren, wenn Benutzerdaten gespeichert werden */
function xyz_clearCache()  {
	if (function_exists('w3tc_pgcache_flush')) {
		w3tc_pgcache_flush();
	} 
   return true;
}
add_action('user_register', 'xyz_clearCache');
add_action('profile_update', 'xyz_clearCache');

Aus Sicherheitsgründen ist es ratsam, das WordPress-Tabellenprefix nicht beim Standardwert wp_ zu belassen. Wenn man das nachträglich bei einer WordPress-Installation vornimmt, muss man einerseits in der wp-config.php das neue Prefix eintragen (z.b. wp_projektname_) und danach vie Datenbanktool (z.B. phpmyadmin) alle Tabellen umbenennen.

Danach wird allerdings kein Login in den Admin-Bereich möglich sein, da das Tabellenprefix auch in den Datenbankeinträgen in wp_options einige Male zu finden ist. Abhilfe schaffen folgende kurzen SQL-Befehle:

UPDATE neuesPrefix_options SET option_name = REPLACE(option_name, 'altesPrefix_', 'neuesPrefix_');
UPDATE neuesPrefix_usermeta SET meta_key = REPLACE(meta_key, 'altesPrefix_', 'neuesPrefix_');

Danach klappts auch wieder mit dem Einloggen :-)