Hallo,
ich habe nach einem Tutorial (diesem hier) mein Wp zu einem Lexikon erweitert. Ich möchte, das Lexikon Beiträge in einem speziellen Template ausgegeben werden.
Ich habe folgende ausführungen abgearbeitet:
ZitatAlles anzeigenNormalerweise sieht die Struktur deiner single.php-Datei in etwa so oder so ähnlich aus:
<?php while (have_posts()) : the_post(); ?>
<h5 class="inline"><?php the_category(', ') ?></h5><span class="small"><?php the_time('d. F Y'); ?></span>
<h2><?php the_title(); ?></h2>
...Damit wird der Beitrag direkt aufgerufen (das ist der sogenannte Loop). Es gibt dabei keine Unterscheidung zwischen den Beiträgen, alle werden in der selben Form dargestellt.
Die oben erwähnte IF-ELSE-Konstruktion kann das aber ändern.
Dafür setzt du direkt vor den Loop folgenden Schnippsel:
<?php if (in_category(71)): ?>
NUMMER ersetzt du abermals mit der vorhin notierten Kategorie-ID deiner Lexikon-Kategorie.
Nach diesem Code-Schnippsel kannst du nun dein “Template” für die Beiträge des Lexikons einfügen.
In aller Regel reicht das normale Template, beiu dem du solche Informationen wie Datum der Veröffentlichung, Kategorie, Autor, etc. löschst und auf die Kommentarfunktion verzichtest.
Wenn du damit fertig bist, musst du Wordpress noch die beginnende Alternative aufzeigen:
<?php else: ?>
Hinter diesem Else folgt nun dein “altes” Template für die Beiträge.
Wenn auch das beendet ist (normalerweise nach der Kommentarfunktion) musst du die IF-ELSE-Schleife dann aber auch noch schließen, weil es sonst nur Fehler gibt:
<?php endif; ?>
Ganz wichtig in diesem Schritt ist aber, dass du jeden Loop (du hast ja jetzt nun zwei) auch wieder schließt. Das geht mit dem allseits bekannten:
<?php endwhile; ?>
Machst du das nicht, wirst du dich auf eine sinnlose Fehlersuche begeben müssen!
Nun haut das aber bei mir nicht hin, weil ich glaube das diese ganzen endwhile und else Dinger nicht an der richtigen stelle sitzen.
Ich poste mal meinen Code, vielleicht kann mir jemand sagen, wo der Fehler ist...???
<?php get_header(); ?>
<div id="content">
<div id="contentleft">
<div class="postarea">
<?php include(TEMPLATEPATH."/breadcrumb.php");?>
<?php if (in_category(4)): ?>
<h1><?php the_title(); ?></h1>
<div style="clear:both;"></div>
<?php the_content(__('Read more'));?><div style="clear:both;"></div>
<!--
<?php trackback_rdf(); ?>
-->
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p><?php endif; ?>
</div>
<?php else: ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<div class="date">
<div class="dateleft">
<p><span class="time"><?php the_time('F j, Y'); ?></span> by <?php the_author_posts_link(); ?> <?php edit_post_link('(Edit)', '', ''); ?> <br /> Filed under <?php the_category(', ') ?></p>
</div>
<div class="dateright">
<p><span class="icomment"><a href="<?php the_permalink(); ?>#respond"><?php comments_number('Leave a Comment', '1 Comment', '% Comments'); ?></a></span></p>
</div>
</div>
<div style="clear:both;"></div>
<?php the_content(__('Read more'));?><div style="clear:both;"></div>
<div class="postmeta">
<p><span class="tags">Tags: <?php the_tags('') ?></span></p>
</div>
<!--
<?php trackback_rdf(); ?>
-->
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p><?php endif; ?>
</div>
<?php endif; ?>
<div class="adsense-post">
<!--To activate your Google AdSense ad, go to your WP dashboard and go to Appearance -> Revolution Lifestyle Options and enter your Google Adsense Code.-->
<?php $adsense_468 = get_option('revlifestyle_adsense_468'); echo stripslashes($adsense_468); ?>
</div>
<div class="comments">
<?php comments_template('',true); ?>
</div>
</div>
<?php endwhile; ?>
<?php include(TEMPLATEPATH."/sidebar.php");?>
</div>
<!-- The main column ends -->
<?php get_footer(); ?>
Alles anzeigen