Hin und wieder schraube ich, einfach weil es mir Spaß bereitet, an meinem Theme. So auch am heutigen Tage. Heute hatte ich die vordefinierten Templates für Seiten und Artikel ins Auge gefasst. Damit ist es möglich, Seiten-Layouts individuell zu gestalten. Also zum Beispiel spezielle Content-Areas zu definieren oder auch einen Block einzufügen, der dann benutzerdefinierten Text und gar ein Bild anzeigt. Auf vielen Blogs habe ich das bereits gesehen, aber selbst nie umgesetzt da ich es für unästhetisch befinde. Da mein Theme auf dem Dialogue-Design basiert (ich habe es liebevoll Dialogue-Reloaded by maltris getauft), war allerdings standardmäßig unter jedem Artikel und jeder Seite eine Sektion, in der Details zum Artikel wie zum Beispiel das Datum, der RSS-Link und so weiter standen. Das man sowas auf einer Seite auf der sich das Impressum befindet und auf anderen statischen Seiten nicht brauchen kann, sollte klar sein.

Einige fertige Themes, besonders die “Bezahl-Themes”, bieten bereits die Möglichkeit solche Texte auf Wunsch auszublenden. Bei Dialogue in meiner Version gab es das nicht – bzw. nur in einer Form, in der ich es nicht für akzeptabel empfand. Deshalb habe ich mich selbst daran gemacht und möchte nun kurz für die Interessierten beschreiben, wie es geht. Weiterhin ist das eine Art Merkzettel für mich, falls ich das gleiche irgendwann mit einem anderen Theme durchziehen möchte. Man weiß ja nie wo sich mal eine Gelegenheit auftut.

Fangen wir also an mit den Grundlagen.
Ein Template ist durch eine ganz normale PHP-Datei im Theme-Verzeichnis gestützt. Man kann diese Datei im Grunde komplett von 0 erstellen, aber das kostet Zeit und manchmal auch Nerven. Deshalb habe ich es mir einfach gemacht und kopiere mir einfach das Standard-Template, welches hier single.php heißt. Dann benenne ich es in einen Namen meiner Wahl um, wobei ich allerdings darauf achte nicht die Endung zu zerstören und öffne es anschließend mit einem Editor meiner Wahl. Ich nutze gerne nano in der Kommandozeile für schnell zu erledigende Sachen, mousepad auf dem Linux-Desktop oder notepad++ auf meinem Gaming-PC der mit Windows läuft.

Nun muss WordPress den Namen des Templates erfahren, um diesen dann im Dashboard anzeigen zu können. Beim Standard-Template geht das automatisch, bei allen optionalen ist es angeraten selbst einen Namen zu definieren. Dies geschieht direkt in der jeweiligen Datei, bei mir “sauberefusszeile.php”. In der kopierten single.php findet sich als allererstes folgener Codeschnipsel:

<?php get_header(); ?>

Dieser fügt unserem Template die Kopfzeile des Themes hinzu und ist für uns wie auch der Rest zu Anfang nicht von Belangen. Wichtiger ist nur die Position dessen, was über dem Schnipsel eingefügt werden muss um einen Namen zu vergeben.

<?php
/*
Template Name: sauberefusszeile
*/
?>

Dies wird einfach mit oder ohne einer Leerzeile über dem zuvor gezeigten Schnipsel eingefügt. Es zeigt WordPress den gewünschten Namen, sodass dieses ihn später entsprechend anzeigen kann.

Ist das getan, kann es mit dem eigentlichen Bearbeiten der Datei weiter gehen. Ab hier wird es dann doch bisschen spezifisch auf mein Design bezogen, also nicht zwangsläufig interessant für “jeden”. :)

Hier die unveränderte single.php:

<?php get_header(); ?>

<div id=”content”><!– the content –>

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>

<div><!– the post –>
<h2 id=”post-<?php the_ID(); ?>”><a href=”<?php echo get_permalink() ?>” rel=”bookmark” title=”Permanent Link: <?php the_title(); ?>”><?php the_title(); ?></a></h2>

<div><!– the entry –>
<?php the_content(__(‘ […]’,’avenue’)); ?>
<?php wp_link_pages(); ?>
</div><!– end of the entry –>
</div><!– end of the post –>

<!– the tags –>
<div><?php _e(‘Tags  &raquo; ‘); ?><?php the_tags(”, ‘, ‘, ‘ &laquo;’); ?>
</div><!– the end of the tags –>

<div id=”info”><p>
<?php _e(‘Autor:’,’avenue’); ?><?php the_author_posts_link(‘nickname’); ?><br />
<?php _e(‘Datum:’,’avenue’); ?> <?php the_time(__(‘l, j. F Y G:i’)) ?><br />
<?php _e(‘ Trackback: ‘,’avenue’); ?><a href=”<?php trackback_url(display); ?>”>Trackback-URL</a><?php _e(‘ Themengebiet:’,’avenue’); ?> <?php the_category(‘, ‘) ?><br /><br />
<?php _e(‘Feed zum Beitrag:’,’avenue’); ?> <?php comments_rss_link(‘RSS 2.0  ‘); ?>
<?php if ((‘open’ == $post-> comment_status) && (‘open’ == $post->ping_status)) { // Both Comments and Pings are open ?>
<?php _e(‘Diesen Artikel <a href=”#respond”>kommentieren </a>’,’avenue’); ?>
<?php } elseif (!(‘open’ == $post-> comment_status) && (‘open’ == $post->ping_status)) { // Only Pings are Open ?>
<?php _e(‘Kommentare sind geschlossen,<br />aber Du kannst einen’,’avenue’); ?> <a href=”<?php trackback_url(display); ?> “>trackback</a> <?php _e(‘ auf Deiner Seite setzen.’,’avenue’); ?>
<?php } elseif ((‘open’ == $post-> comment_status) && !(‘open’ == $post->ping_status)) { // Comments are open, Pings are not ?>
<?php _e(‘Diesen Artikel <a href=”#respond”>kommentieren</a>. <br />Pingen ist momentan nicht m&ouml;glich. ‘,’avenue’); ?>
<?php } elseif (!(‘open’ == $post-> comment_status) && !(‘open’ == $post->ping_status)) { // Neither Comments, nor Pings are open ?>
<?php _e(‘Kommentare und Pings geschlossen. ‘,’avenue’); ?>
<?php } edit_post_link(__(‘Edit’),”,”); ?></p></div>

<div>
<div><?php previous_post_link(); ?></div>
<div><?php next_post_link(); ?></div>
</div>

<?php comments_template(); ?>
<?php endwhile; else: ?><p><?php _e(‘Sorry, kein Beitrag passt zu diesen Kriterien.’,’avenue’); ?></p>

<?php endif; ?>

</div><!– end of the content –>
<?php include (TEMPLATEPATH . ‘/singlebar.php’); ?>
<?php get_footer(); ?>

Man erkennt gut den Abschnitt, welcher die verschiedenen Daten einfügt. Der Abschnitt startet mit der Information

<!– the tags –>

und endet bei

<?php comments_template(); ?>

bis dahin kann man erstmal (NACHDEM EINE SICHERUNG ANGEFERTIGT WURDE) alles löschen sofern man auf den kompletten Block verzichten möchte. Auch wird bei dem Vorgang das Formular für die Kommentare entfernt, welches ich aber ohnehin auf einem Impressum nicht brauchen kann.

Checkt man sein Template nun mal von “außen”, wird einem auffallen, dass der Text einer Seite in diesem Template relativ apprupt endet. Das liegt daran, dass nun wirklich nur noch Weiß unter dem Artikel ist, sofern kein anständiger Footer vorhanden. Man kann als Lösung eine kleine Zierlinie einfügen, ich habe das mittels

<div class=”spacer”></div>

getan.

In der style.css muss dann folgendes vorhanden sein:

.spacer {
border-top : 1px dotted #cad6d9;
margin : 25px 0 7px 0;
padding : 0 0 0 0;
}

Damit kann man dann die Linie auch noch im Design variieren

Nach dem Speichern und Auswählen des Templates über das Backend, sollte eure Seite sauber von Informationen in der Fußzeile sein.

OkdanketschüssnutztdieKommentarfunktionwennFragen

Leave a Reply

Your email address will not be published.