2017-09-27 30 views
0

に機能add_shortcode内でPHPのコードを追加します私は例えばのfunctions.php</p> <p>に機能add_shortcode内でPHPのコードを追加するにはどうすればよいのfunctions.php Wordpressの

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

私はあなたの質問を理解していません。 add_shortcode関数はショートコードを作成することです。この場合、[my_novinki]を使用して呼び出されます。次に、my_novinkiという名前の関数内のコードが実行されます。 –

+0

my_novinki関数ですべてのコードが必要ですか? –

+0

ありがとうございました。私は戻ってみたい。ショートコードの中にPHPコード(例を見てください)。 –

答えて

0

あなたが次のことをする必要があります。 functions.phpに追加します。そして、これは[my_novinki]かを使用して呼び出すことができ

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'); 

Codexを参照してください<?php echo do_shortcode['my_novinki'];

+0

このコードをチェックしたところです。問題は何も出力されないということです。構文にはエラーはありませんが、コードはページに何も印刷しません。 –

+0

私のPHPコードが間違っているかもしれません))))私もチェックします。 –

+0

多分問題は、$画像変数に何もないので、ifステートメント内のコードが実行されないということです –

0

を使用してPHPのテンプレートであれば:いずれかの出力を生成することはありません」ショートによって呼び出さ..the機能をショートコード関数は、ショートコードを置き換えるために使用されるテキストを返さなければなりません。

あなたが)のob_start()と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; 
}); 
関連する問題