2010-12-12 9 views
0

Ich habe diesen Code, der die Navigation für eine Diashow erstellt. Es funktioniert ganz gut, außer dass eine der Variablen den Code an der falschen Stelle rendert. Wie Sie unten sehen können, sollte $imgCount (3 von 3) in <div class="next-prev"> </div> sein aber es wird vor diesem div angezeigt.PHP Ausgabe Code in der falschen Stelle

Warum bewegt es sich außerhalb des div, dass es innen codiert ist?

Hier ist, wie ich es Ausgang erwarten:

<div class="slideshow-nav"> 
    <div> 
     <div class="next-prev"> 
      <a href="/slideshow-one/2/">&larr; Previous 3 of 3 </a><a href="../">Back to Slide One</a> 
     </div> 
    </div> 
</div> 

Hier ist, wie es ausgibt:

<div class="slideshow-nav"> 
    <div>3 of 3 
     <div class="next-prev"> 
      <a href="/slideshow-one/2/">&larr; Previous </a><a href="../">Back to Slide One</a> 
     </div> 
    </div> 
</div> 

Hier ist der Code ist, dass es einrichtet:

<div class="slideshow-nav"> 
    <div class="img-count"> 
     <?php function img_count() { 
      global $page, $numpages; 
      echo "$page of $numpages"; 
      } ?> 
     </div> 
    <div> 
     <?php 
      global $page, $numpages; 
        $imgCount = img_count(); 
       if ($page < 2) 
        $next = '<span class="start-ss">Go</span>'; 
       else 
        $next = ' Next &rarr;'; 
       if ($page == $numpages) 
        $previous = '&larr; Previous ' .$imgCount. ' <a href="../">Back to Slide One</a>'; 
       else 
        $previous = '&larr; Previous ...'; 
      wp_link_pages(  
       array(
       'before' => '<div class="next-prev">', 
       'after' => '</div>', 
       'next_or_number' => 'next', 
       'nextpagelink' => $next, 
       'previouspagelink' => $previous, 
       )); 
      ?> 
     </div> 
</div> 

Antwort

6

ändern echo zu return in Ihrer Funktion, z

function img_count() { 
    global $page, $numpages; 
    return "$page of $numpages"; 
} 
+0

Perfekt, danke! Nur neugierig, warum ist das wichtig? – mattz

+3

'echo' gibt den String sofort aus (deshalb erscheint er in der Ausgabe an der gleichen Stelle, an der Sie die Funktion aufrufen), die * keinem String zugewiesen werden kann (ohne Ausgabepufferung zu verwenden, aber Sie brauchen nicht das für jetzt). 'return' setzt diese Zeichenkette als Rückgabewert der Funktion, die * einer Variablen zugewiesen werden kann. –

+0

danke für deine antwort! –

Verwandte Themen