Hier sind alle Beiträge aufgelistet, die mit wordpress-anpassung verschlagwortet sind.
Wenn man für WordPress Themes entwickelt dann muss man an manchen Stellen die Template-Tags für verschiedene Versionen berücksichtigen. Die Entwickler haben in den Versionsstrang 2.1.x nicht nur neue Template-Tags eingeführt sondern, ganz "schlau", alte unwirksam gemacht. Ganz schlau. Das ist einer der Gründe warum ich die Version 2.1.x noch nicht in mein Herz geschlossen habe … mal davon abgesehen das diese Version auf mich noch nicht den stabilen Eindruck macht wie z.B. die Version 2.0.9.
Wie dem auch sei, an manchen Stellen z.B. wie beim Aufruf der Blogroll oder beim Aufruf der Kategorien muss man die verschiedenen Versionen berücksichtigen. Die einfachste Möglichkeit ist es zwei verschiedene Themes zu machen. Eine für den 2.0.x-Strang und eine für den 2.1.x-Strang. Das ist aber unnötige Arbeit und eine unnötige Fehlerquelle.
Daher habe ich mich auf die Suche nach einer Lösung begeben und ich dachte da an eine Abfrage. Die Fragestellung im WordPress-Forum ergab kein Ergebnis und daher habe ich mir mal diverse Plugins angeschaut und die Lösung der Probleme ist $wp_version anzusprechen. Hier ein Beispiel, wie man die Kategorien für die Version 2.0.x und 2.1 aufruft:
<?php if (($wp_version < "2.1")) {
wp_list_cats('sort_column=name&optioncount=1');
}
if (($wp_version >= "2.1")) {
wp_list_categories('sort_column=name&show_count=1&title_li');
} ?>
Der erste Teil des Code-Abschnitts (if (($wp_version < "2.1"))) wird in allen Versionen eingebaut, die kleiner als 2.1 sind und der zweite Code-Abschnitt (ab if (($wp_version >= "2.1"))) wird in allen Versionen eingebaut die 2.1 oder größer sind. Ich werde daher in den nächsten Tagen alle Themes so ausrüsten, es ist Kokolores zwei verschiedene Themes-Versionen zu pflegen, wenn man in einem Theme mehrere WP-Versionen berücksichtigen kann.
Nachtrag: eine weitere Möglichkeit (aus dem Support-Forum) wie man ein und das selbe WordPress-Theme für mehrere Versionen fit machen kann ist die Abfrage ob eine Funktion überhaupt vorhanden ist:
<?php if (function_exists('wp_list_cats')) {
wp_list_cats('sort_column=name&optioncount=1');
}
else {
wp_list_categories('sort_column=name&show_count=1&title_li');
} ?>
Im Prinzip ist das gleiche wie wenn man abfragt ob ein Plugin vorhanden ist. Dies scheint mir sicherer zu sein, da mich Garvin darauf hingewiesen hat, dass die Versions-Abfrage, so wie ich sie oben vorgestellt habe, evtl. bei z.B. Beta-Versionen nicht funktionieren könnte.
Hinweis:
WordPress 3.3 für Autoren & Redakteure
Der schnelle und unkomplizierte Einstieg auf 45 DIN-A4-Seiten
Ich habe in den letzten zehn Tagen drei E-Mails bekommen, in denen ich gefragt wurde wie ich die Beitrags-Information unter den einzelnen Beiträgen realisiert habe. Hier eine Abbildung der Beitrags-Info:

Abbildung der Beitrags-Info
Diese Infoleiste kann man an einer beliebigen Stelle im WordPress-Theme unterbringen. Ich habe hierfür extra eine single.php erstellt. Die single.php ist in einem WordPress-Theme zuständig für die Ausgabe der einzelnen Beiträge (Einzelansicht).
Hier der zuständige Code aus der single.php:
<div class="feedback2">
<dl>
<dt>Info: </dt>
<dd><em><?php the_title(); ?></em> ist Beitrag Nr. <?php the_ID(); ?></dd>
<dt>Autor: </dt>
<dd><?php the_author(); ?> am <?php the_date(); ?> um <?php the_time(); ?></dd>
<dt>Kategorie: </dt>
<dd><?php the_category(','); ?></dd>
<dt>Tags: </dt>
<dd><?php
if (function_exists('the_post_keytags')) {
the_post_keytags();
}
else {
echo 'Plugin deaktiviert';
}
?></dd>
<dt>Trackback: </dt>
<dd><a href="<?php trackback_url() ?>">Trackback URI</a></dd>
</dl>
</div>
Wie man sieht habe ich für die Auszeichnung des Inhaltes eine Definitionsliste bemüht, weil es meiner Meinung nach semantisch sinnvoll ist. Der Rest dürfte selbsterklärend sein, wenn nicht, dann bitte hier ein Kommentar hinterlassen.
Im unteren Abschnitt habe ich eine Abfrage (if (function_exists) eingebaut, wenn dass tagging-Plugin deaktiviert sein sollte, sonst kommt es zu hässlichen Fehlermeldungen. Man könnte sich überlegen ob es für einen selbst nicht sinnvoller wäre, die Abfrage vor dem einleitenden dt-Tag einzubauen.
Hier der zuständige CSS-Code:
dt {
font-weight: bold;
}
dd {
margin: 1px 0 .5em 0;
}
.feedback2 p, .feedback2 dl {
margin: 10px 0;
}
.feedback2 dl dt {
float: left;
margin-right: 5px;
width: 80px;
}
.feedback2 dl dd {
margin-bottom: 1px;
}
Hinweis:
WordPress 3.3 für Autoren & Redakteure
Der schnelle und unkomplizierte Einstieg auf 45 DIN-A4-Seiten
Ein guter Seitentitel ist sehr wichtig. Ich rede hierbei von dem Titel welcher sich oben in der Browserleiste befindet und durch das title-Element ausgezeichnet wird. Hier eine Abbildung:

Ein Aussagekräftiger Titel ist wichtig für den Besucher und zwar in zweierlei Hinsicht. Zum einen als Orientierung innerhalb der Website und zum anderen wird der Seitentitel bei den diversen Lesezeichen-Verwaltungen auch als Lesezeichen-Titel übernommen. Auch in Bezug auf die Optimierung einer Website für die Suchmaschinen ist der Seitentitel extrem wichtig. Da die Suchmaschinen den Seitentitel stark bewerten und weil bei der Auflistung des Suchergebnisse der Seitentitel benutzt wird. (weiterlesen…)
Hinweis:
250+ Professionelle WordPress-Themes
Premium WordPress-Themes, 24 davon mit deutschem Support
Anscheinend hat sich ein kleiner aber ärgerlicher Fehler in der aktuellen WordPress-Version reingschlichen. Die Feeds die über Feedburner serviert werden, liefern u. U. eine leere Seite aus. Hier die Erklärung des Fehlers.
Eine mögliche Abhilfe ist der Download der angepassten functions.php. Diese dann anschließend in den Ordner /wp-includes/ hochladen. Und wenn man schon mal dabei ist, dann kann man sich auch die aktuelle Version des Plugins (Version 2.2) herunterladen und installieren.
Ich habe bereits in einigen Beiträgen auf die Möglichkeit hingewiesen, dass man in WordPress den Seiten (Pages) verschiedene Templates zuweisen kann. Das kann z. B. dann nützlich sein wenn man einer Unterseite entweder unterschiedliche Layout-Elemente oder Inhalte (z. B. eine zusätzliche Sidebar) spendieren will.
Klar, man könnte dies auch stattdessen mit den if-Statements lösen. Aber die Seiten-Templates können noch mehr. So kann man auch komplette Inhalte durch Seiten-Templates erzeugen. Hier ein mögliches Beispiel für eine Archiv-Seite:
<?php
/*
Template Name: Archiv
*/
?>
<?php get_header(); ?>
<?php get_sidebar(); ?>
<div id="inhalt">
<div class="beitrag">
<h2><?php the_title(); ?></h2>
<h3>Archiv nach Monaten sortiert</h3>
<ol>
<?php get_archives('monthly', '', 'html', '', '', TRUE); ?>
</ol>
<h3>Die 20 letzten Beiträge</h3>
<ol>
<?php get_archives('postbypost','20','custom','<li>',''); ?>
</ol>
</div><!-- /beitrag -->
</div><!-- /inhalt -->
<?php get_footer(); ?>
Die ersten fünf Zeilen symbolisieren WordPress, dass es sich hier um ein Seiten-Template mit dem Namen Archiv handelt. Diese Datei müsste man dann entsprechend in den Theme-Ordner hochladen. Wenn man dann neue Seiten erstellt hat man die Möglichkeit dieser Seite das Archiv-Template zuzuweisen. Außer dem Titel müsste man hier keinen weiteren Inhalt einfügen und man hätte trotzdem eine Seite mit einem Monatsarchiv und der Auflistung von 20 letzten Beiträgen. Ähnlich wie hier auf der Archiv-Seite.
Sicher, durch den Einsatz von Plugins (z. B. Exec-PHP) die das Ausführen des PHP-Codes erlauben, ist die o. g. Lösung nicht wirklich notwendig, aber sie funktioniert ohne Plugins und nicht jeder hat es gerne wenn innerhalb der Seiten und Beiträge der PHP-Code ausgeführt werden kann.
Ich habe so eben einige Änderungen im Kommentar-Bereich vorgenommen. Zum einen habe ich die Gravatare rausgenommen, die Ladezeit des Gravatar-Servers war mehr als lausig. Mal schauen ob sich die schlechte Ladezeit in der Zukunft verbessert, evtl. füge ich die Gravatere auch wieder ein.
Dann habe ich die Zählweise der Kommentare geändert. Zuerst habe ich die Listenzeichen der Aufzählungsliste ausgeblendet (list-style: none;) und anschließend diese Codezeile in der comments.php:
<?php foreach ($comments as $comment) : ?>
durch folgende ersetzt:
<?php $count = 0; foreach ($comments as $comment): $count++; ?>
An der Stelle, wo man dann den Kommentarzähler haben will, fügt man folgenden Code ein:
<a href="#comment-<?php comment_ID() ?>">#<?php echo $count; ?></a>
Anhand der Anleitung von Michael habe ich dann meine Kommentare hervorgehoben. Dafür habe ich in der comments.php diesen Code:
<li id="comment-<?php comment_ID() ?>">
durch folgenden ersetzt:
<li id="comment-<?php comment_ID() ?>"<?php
global $comment;
if ( ($comment->comment_author_email == get_the_author_email()) && ($comment->user_id != 0) ) {
echo " class=\"mein-kommentar\"";
}
?>>