2011-08-15 11 views
2

私はページに次のテキストを持っています。私のショートコードは下にありますが、コードが実行されたときに何らかの形でショートコードが出力されます。ここで他のコンテンツの前にショートコードが実行されるのはなぜですか?

<img class="alignnone" title="title_enquires" src="http://localhost/barcelona/wp-content/uploads/2011/08/title_enquires.jpg" alt="" width="589" height="77" /> 
<img class="alignnone" title="contact_map" src="http://localhost/barcelona/wp-content/uploads/2011/08/contact_map.jpg" alt="" width="555" height="222" /> 

[barcelona_address] 

はfunction.phpファイル内の私の短いコード登録です:

<?php 
add_shortcode('barcelona_address', 'barcelona_shortcode_handler'); 

function barcelona_address_func() 
{ 
    print "<p>sdsdsds</p>"; 
} 

function barcelona_shortcode_handler($atts, $content=null, $code="") 
{ 
    if (function_exists($code . "_func")) 
    { 
     call_user_func($code . "_func", $atts); 
    } 
} 
?> 

、結果は次のとおりです。

<p>sdsdsds</p> 
<img class="alignnone" title="title_enquires" src="http://localhost/barcelona/wp-content/uploads/2011/08/title_enquires.jpg" alt="" width="589" height="77" /> 
<img class="alignnone" title="contact_map" src="http://localhost/barcelona/wp-content/uploads/2011/08/contact_map.jpg" alt="" width="555" height="222" /> 

答えて

10

あなたのショート・ハンドラがリターンに出力を想定していますショートコードの代わりに表示するには、何も出力しません。

ob_start(); 
...your code... 
return ob_get_clean(); 

とHTMLを文字列として返すせずに使用します。あなたは、代替として使用することができます

http://codex.wordpress.org/Shortcode_API

+0

回答ありがとうございました – Roman

2

+0

ニース、ありがとうございます! – Jonathan

関連する問題