2017-09-27 2 views
0

Wie ich PHP-Code innerhalb der Funktion add_shortcode in functions.phpIn PHP-Code innerhalb der Funktion add_shortcode in functions.php Wordpress

Für Beispiel hinzufügen:

<?php $images = get_field('img_novinki'); if($images) { ?> 


<div id="carousel" class="flexslider"> 
    <ul class="slides gallery"> 
     <?php foreach($images as $image): ?> 
      <li> 
       <a href="<?php echo $image['url']; ?>"><img src="<?php echo $image['sizes']['thumbnail']; ?>" alt="<?php echo $image['alt']; ?>" /></a> 
      </li> 
     <?php endforeach; ?> 
    </ul> 
</div> <?php } ?> 

Shortcode in Funktionen PHP:

function my_novinki($atts) 
{ 
    return ''; 
} 
add_shortcode('my_novinki', 'my_novinki'); 
+0

Ich bin nicht sicher, ich verstehe Ihre Frage. Die Funktion add_shortcode soll einen Shortcode erstellen, in diesem Fall würde er mit [my_novinki] aufgerufen. Dann wird der Code in der Funktion namens my_novinki ausgeführt. –

+0

Sie benötigen Ihren gesamten Code in der Funktion my_novinki? –

+0

Vielen Dank für die Antwort. Ich möchte zurückkehren "; PHP-Code (siehe Beispiel) innerhalb des Shortcodes. –

Antwort

0

Von dem, was ich sehe, müssen Sie Folgendes tun. In functions.php hinzufügen:

function my_novinki($atts) 
{ 
    $images = get_field('img_novinki'); 

    if($images) { 

    echo '<div id="carousel" class="flexslider">'; 
    echo '<ul class="slides gallery">'; 

     foreach($images as $image): 
      echo '<li>'; 
      echo '<a href="'. $image["url"] .'"><img src="'.$image["sizes"]["thumbnail"] .'" alt="'. $image["alt"] .'" /></a>'; 
      echo '</li>'; 
     endforeach; 

    echo '</ul>'; 
    echo '</div>'; 
    } 

} 

add_shortcode('my_novinki', 'my_novinki'); 

Dann können diese <?php echo do_shortcode['my_novinki'];

+0

Ich habe gerade diesen Code überprüft. Das Problem ist, dass nichts ausgegeben wird. Es gibt keine Fehler in der Syntax, aber der Code zeigt nichts auf der Seite an. –

+0

Vielleicht ist mein PHP-Code falsch)))) Ich werde es auch überprüfen. –

+0

Vielleicht ist das Problem, dass es nichts in der Variablen $ images, daher der Code in der if-Anweisung nicht –

0

Codex Siehe Verwendung mit [my_novinki] oder wenn in einer PHP-Vorlage aufgerufen werden:“..die Funktion durch den Shortcode genannt sollte nie Ausgang jeder produzieren Art. Shortcode-Funktionen sollten den Text zurückgeben, der zum Ersetzen des Shortcodes verwendet werden soll. "

Sie müssen Ihren Code in ob_start wrap() und ob_get_clean():

add_shortcode('my_novinki', function my_novinki($atts) { 
    ob_start(); 
    $images = get_field('img_novinki'); 
    if($images) { ?> 
     <div id='carousel' class='flexslider'> 
      <ul class='slides gallery'> <?php 
       foreach($images as $image) { ?> 
        <li> 
         <a href='<?php echo $image['url']; ?>'> 
          <img src='<?php echo $image['sizes']['thumbnail']; ?>' alt='<?php echo $image['alt']; ?>' /> 
         </a> 
        </li> <?php 
       } ?> 
      </ul> 
     </div> <?php 
    } 
    $out = ob_get_clean(); 
    return $out; 
}); 
Verwandte Themen