¿Por qué mi código corto se ejecuta antes que otro contenido?

3

Tengo el siguiente texto en una página. Como puede ver, mi shortcode está justo al final, pero de alguna manera cuando se ejecuta el código, la salida de mi shortcode se inserta en la parte superior de la página en lugar de seguir su contenido anterior.

<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]

aquí está mi registro de código corto dentro del archivo 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);
   }
}
?>

y el resultado es:

<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" />
    
pregunta Roman 15.08.2011 - 07:02

1 respuesta

10

Por demanda popular:

La solución es simplemente reemplazar print a return . Los códigos cortos siempre deben devolver el valor en lugar de imprimirlo o hacerlo eco.

    
respondido por el Bainternet 15.08.2011 - 14:03

Lea otras preguntas en las etiquetas