• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Wie Befehl eingrenzen?

Status
Für weitere Antworten geschlossen.

king71

Neues Mitglied
Hallo,
ich bin Anfänger, was php angeht, habe mich allerdings in den letzten Wochen etwas damit beschäftigt.
Ich habe folgende Frage:

Ich habe einen WordPress-Blog. Auf der Startseite werden die neuesten Blogeinträge angezeigt. Jetzt habe ich in der index.php folgenden Befehl eingegeben:

</div> <?php adrotate_banner('3', '4'); ?>

oder für die gesamte index.php:

<?php get_header(); ?>
<?php include (TEMPLATEPATH . '/glide.php'); ?>
<div class="clear"></div>
<div id="content">
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class="single" id="post-<?php the_ID(); ?>">
<div class="title">
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
<div class="date"><span class="author">Posted by <?php the_author(); ?></span> <span class="clock"> On <?php the_time('F - j - Y'); ?></span><span class="comm"><?php comments_popup_link('ADD COMMENTS', '1 COMMENT', '% COMMENTS'); ?></span>
</div>
</div>
<div class="cover">
<div class="entry">
<?php the_content('Lesen Sie weiter &raquo;'); ?>
</div> <?php adrotate_banner('3', '4'); ?>
<div class="clear"></div>
</div>
</div>

Dieser Befehl bewirkt, dass aus einem Plugin heraus fest definierte Banner unterhalb des Blogeintrages geschaltet werden - was auch super funktioniert.

Allerdings bewirkt dieser Befehl, dass damit unter wirklich JEDEM Blogeintrag ein Banner geschaltet wird, was mir etwas zu viel ist.

Jetzt meine Frage: Wie kann ich diesen Befehl so eingrenzen, dass er nur für die ersten beiden Blogeinträge gilt?

Danke für Hilfe!
Viele Grüße
 
zuerst einmal: du musst nicht jede Zeile PHP-Code mit <?php //Code ?> umgeben.
PHP:
<?php
echo 'bla';
holeWert();
echo 'genau';
?>
funktioniert genauso gut und es ist einfacher zu lesen

if - Verzweigungen und schleifen wie while umgibt man mit { und }, was ebenfalls zur lesbarkeit beiträgt.

ich würde es mal so versuchen:

PHP:
<?php
get_header();
include (TEMPLATEPATH . '/glide.php');
?>
<div class="clear"></div>
<div id="content">
<?php
if (have_posts()) {
  $i = 0;
  while (have_posts()) {
    the_post();
    ?>
    <div class="single" id="post-<?php the_ID(); ?>">
      <div class="title">
        <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
        <div class="date"><span class="author">Posted by <?php the_author(); ?></span> <span class="clock"> On <?php the_time('F - j - Y'); ?></span><span class="comm"><?php comments_popup_link('ADD COMMENTS', '1 COMMENT', '% COMMENTS'); ?></span>
        </div>
      </div>
    <div class="cover">
    <div class="entry">
      <?php
      the_content('Lesen Sie weiter &raquo;');
      ?>
    </div>
    <?php
    if ($i < 2) {
      adrotate_banner('3', '4');
    }
    ?>
    <div class="clear"></div>
    <?php
    $i++;
  }
}
?>
</div>
</div>
 
Hallo,
danke für Deine schnelle Antwort und Deine Mühe!!
Doch leider erhalte ich folgende Fehlermeldung, wenn ich Deinen Code in die Datei kopiere und aktiviere:

Parse error: syntax error, unexpected '}' in /is/htdocs/wp1132740_PV6SZT3GE1/www/wordpress/wp-content/themes/primus/index.php on line 33

Hast Du noch eine Idee?
Sicherheitshalber noch einmal die ganze php-Datei, wie Sie ursprünglich im Template hinterlegt ist:

<?php get_header(); ?>

<?php include (TEMPLATEPATH . '/glide.php'); ?>
<div class="clear"></div>

<div id="content">

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

<div class="single" id="post-<?php the_ID(); ?>">

<div class="title">
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
<div class="date"><span class="author">Posted by <?php the_author(); ?></span> <span class="clock"> On <?php the_time('F - j - Y'); ?></span><span class="comm"><?php comments_popup_link('ADD COMMENTS', '1 COMMENT', '% COMMENTS'); ?></span> </div>
</div>

<div class="cover">
<div class="entry">

<?php the_content('Lesen Sie weiter &raquo;'); ?>

<?php adrotate_banner('5', '5'); ?>


<div class="clear"></div>
</div>

</div>


<div class="singleinfo">

<div class="category"><?php the_category(', '); ?> </div>
</div>


</div>
<?php endwhile; ?>
<div id="navigation">
<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
</div>


<?php else : ?>

<h1 class="title">Not Found</h1>
<p>Sorry, but you are looking for something that isn't here.</p>

<?php endif; ?>


</div>


<?php get_sidebar(); ?>
<?php get_footer(); ?>

Danke und viele Grüße
 
Wenn du dich mit PHP befasst hast, solltest du den vorgegebenen Code aber schon verstehen können und entsprechend für deine Anwendungen anpassen können.

Es geht darum, dass die Beiträge in einer while-Schleife ausgegeben werden.
Nun wird vor der Schleife eine Variable=0 definiert, die am Ende der while-Schleife immer um eins erhöht wird (Variable++).
In einer if-Schleife am Ende einer Beitragsausgabe wird geprüft welchen Wert die Variable hat. Ist er kleiner als 2 (also 0 und 1) wird der Banner in der Schleife geladen.
 
O.K., danke für Deine Erläuterung. Jetzt verstehe ich den Zusammenhang. Wie gesagt, ich beschäftige mich erst seit 2 Wochen mit dem Thema php. Den Code anzupassen übersteigt zurzeit noch meinen Horizont.
 
Status
Für weitere Antworten geschlossen.

Neueste Beiträge

Zurück
Oben