…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 :-)

Kurze Antwort: Nein. Nicht so, dass es für einen Website-Betreiber Sinn hat, sich extra dafür passende Begriffe einfallen zu lassen.

Lange Antwort, aus aktuellem Anlass: Nach wie vor hält sich die Legende, dass man durch passende Angabe von META-Keywords im Quelltext das Ranking der eigenen Website beeinflussen könnte. Diese für den Website-Besucher unsichtbaren Keywords stammen aus der Urzeit des WWW, als Suchmaschinen den tatsächlichen Inhalt von Websites noch nicht sinnerfassend auswerten konnten und daher auf Hilfe durch den Ersteller der Website angewiesen waren. Jedoch wurde damit (durch Angabe von falschen und unpassenden Keywords) viel Unfug getrieben, sodass die Suchmaschinenbetreiber die Unterstützung dieser Angaben der Reihe nach aufgegeben haben. Das schon vor langer Zeit, denn Google wertet die Keywords seit 2002(!) nimmer aus, Yahoo seit 2009 und Bing wertet sie zwar als eines von etwa 1000 Kriterien aus, bestraft aber Seitenbetreiber mit niedrigerem Ranking, die unpassende Keywords einsetzen.

Wer also 2014 tatsächlich noch an die Wirksamkeit von META-Keywords glaubt, der wurde schlecht beraten. Heutzutage ist gutes Ranking in Suchmaschinen mit ein bissl mehr Aufwand verbunden, als ein paar Keywords in die Quelltexte einzubauen ;-)

Kontaktfelder kann man sehr einfach zum WordPress-Benutzerprofil hinzufügen oder entfernen. Einfach dieses Codeschnipsel in die functions.php einfügen:

// Kontaktmethoden hinzufügen

add_filter('user_contactmethods', 'meine_neuen_kontaktfelder');
              
function meine_neuen_kontaktfelder($user_contactmethods){
 
    // Neue Felder hinzufügen (Name / Beschriftung)
  $kontaktfelder['twitter'] = 'Twitter @username';
  $kontaktfelder['facebook'] = 'Facebook URL';
  $kontaktfelder['gplus'] = 'Google+ URL';
  
  // Nicht benötigte Felder entfernen
  unset($kontaktfelder['yim']);
  unset($kontaktfelder['aim']);
  unset($kontaktfelder['jabber']);
 
  return $kontaktfelder;
}

Der Abruf im Theme erfolgt wie bei anderen Benutzer-Metadaten:

$metadata = get_user_meta($benutzerID);

echo "Twitter:  ".$metadata['twitter'][0];
echo "Facebook: ".$metadata['facebook'][0];
echo "Google+:  ".$metadata['gplus'][0];

Normalerweise kann jeder Benutzer die Meta-Boxen rund um den Editor selbst zuschalten oder wegschalten (im Editorfenster rechts oben unter “Optionen”), bei Kundenprojekten kann es aber sinnvoll sein, manche der Boxen serienmäßig aus- oder einzuschalten oder deren Reihenfolge vorab festzulegen. Das geht mit ein bißl Bastelei recht flott:

– In den Verwaltungsbereich einloggen, das Editorfenster für Beiträge aufrufen (z.B. mit “Beitrag -> Erstellen”) und rechts oben unter “Optionen” alle Boxen wegschalten, die nicht gebraucht werden.

–  Mindestens eine der Boxen an eine neue Position ziehen. Das kann man unmittelbar danach wieder rückgängig machen, aber so wird der entsprechende Eintrag in der Datenbanktabelle wp_usermeta angelegt.

– Nun kann man in der Datenbanktabelle wp_usermeta die Einträge

meta-box-order_post
metaboxhidden_post

zur eigenen Benutzer-ID suchen. Dort stehen die Reihenfolge der Boxen sowie die versteckten Boxen drin (zwar nicht ganz im Klartext, aber es sollte kein Problem sein).

– In der functions.php folgendes Codeschnipsel einfügen und entsprechend anpassen:

// Reihenfolge und eingeschaltete Editorboxen definieren
add_action('admin_init', 'set_user_metaboxes');
function set_user_metaboxes($user_id=NULL) {
    // aktuelle User-ID herausfinden
    if ( ! $user_id) $user_id = get_current_user_id(); 
    // 1. Reihenfolge für Meta-Boxen bei Beiträgen festlegen
    if ( ! get_user_meta( $user_id, 'meta-box-order_post', true) ) {
        $meta_value = array(
            'side' => 'categorydiv,submitdiv,postimagediv',
            'normal' => 'revisionsdiv,postcustom,commentstatusdiv,commentsdiv,slugdiv,authordiv',
            'advanced' => '',
            );
        update_user_meta( $user_id, 'meta-box-order_post', $meta_value );
	}
    // 2. Versteckte Meta-Boxen bei Beiträgen festlegen
    if ( ! get_user_meta( $user_id, 'metaboxhidden_post', true) ) {
        $meta_value = array('page_option_choice','postexcerpt','trackbacksdiv','postcustom','slugdiv'); 
        update_user_meta( $user_id, 'metaboxhidden_post', $meta_value ); 
        }
    // Hier ggf. noch gleichlautende Codes für Pages oder benutzerdefinierte Typen hinzufügen 
        // 1. Reihenfolge für Meta-Boxen bei Seiten festlegen (Code von oben anpassen)
        // 2. Versteckte Meta-Boxen bei Seiten festlegen (Code von oben anpassen)
 } // Ende der Funktion

– Für den Seiten-Editor lauten die entsprechenden Einträge in der wp_usermeta entsprechend metaboxhidden_page und meta-box-order_page, für benutzerdefinierte Beitragstypen metaboxhidden_TYPE und meta-box-order_TYPE, ansonsten bleibt die Vorgangsweise gleich.

Wenn Menschen erstmals einen (Web- oder Grafik-)Designer beauftragen, so kann das in ziemlichem Chaos enden. Die Grundregeln für eine solche Zusammenarbeit hat Karoline Stiefel auf ihrem Blog wunderbar zusammengefasst – diesen Text sollten alle Beteiligten gelesen haben: welche Angaben der Designer braucht, wie wichtig ein Projektverantwortlicher und eine Deadline sind und wie man die Zusammenarbeit möglichst effizient gestalten kann.