2011-01-23 10 views
14

que crearon un código corto que muestran los empleados, el código HTML mirada algo como lo siguiente:Shortcodes dentro de un código corto - wordpress

<ul class="employees"> 

<li><img src=""> <h5>name</h5> <p>description</p></li> 
<li><img src=""> <h5>name</h5> <p>description</p></li> 
.. 

</ul> 

así que creé 2 códigos cortos:

[start_employee] - la cual contiene <ul class="employee"> .. </ul>

[empleado] - que contiene el contenido sobre el empleado

y debería funcionar así:

[start_employee] 
[employee img=".." name=".." description=".."] 
[employee img=".." name=".." description=".."] 
[/start_employee] 

pero cuando lo pongo en el editor de wordpress el aspecto html así:

<ul class="employee"> 
[employee img=".." name=".." description=".."] 
[employee img=".." name=".." description=".."] 
</ul> 

Creo que sé por qué .. porque el fuunction de start_employee contienen:

return '<ul class="employee">'.$content.'</ul>'; 

Lo ¿Debo hacer eso para leerlo como un código corto?

Gracias.

+0

Podría tal vez publicar el código completo de la función del código corto? Sería más fácil ayudarte y podría ayudar a otras personas que buscan soluciones similares. – AJJ

Respuesta

9

Tienes que usar los códigos abreviados recursivamente para obtener el resultado.

function start_employee($attr,$content){ 
      return '<ul class="employee">'.do_shortcode($content).'</ul>'; 
} 
add_shortcode("start_employee","start_employee"); 

function employee($attr,$content){ 
      return '<li><img src=""> <h5>name</h5>; <p>description</p></li>'; 
} 
add_shortcode("employee","employee"); 
4

Si ha establecido una función recursiva hacia arriba, como en Cart66, se puede hacer algo como esto:

echo do_shortcode('[hide_from level="membership" ]<strong>You may only order this item if you are a member. Become a <a href="http://yoursite.com/beta/member-log-in/">member</a>.</strong>[/hide_from]'); 
echo do_shortcode('[show_to level="membership"]'.do_shortcode('[add_to_cart item="'.$prefix.get_post_meta($post->ID,'_et_cart66_product_id',true).'" ]').'[/show_to]'); 
Cuestiones relacionadas