Почему мой шорткод выполняется перед другим контентом? - PullRequest
3 голосов
/ 15 августа 2011

У меня есть следующий текст на странице.Как вы можете видеть, мой шорткод находится внизу, но каким-то образом, когда код запускается, вывод моего шорткода вставляется в верхнюю часть страницы, а не в соответствии с предыдущим содержимым.

<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" />

Ответы [ 2 ]

11 голосов
/ 15 августа 2011

Предполагается, что ваш обработчик шорткода возвращает вывод, отображаемый вместо шорткода, а не выводит сам что-либо.

http://codex.wordpress.org/Shortcode_API

5 голосов
/ 16 мая 2015

Вы можете использовать как альтернативу:

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

и использовать без возврата HTML в виде строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...