2011-01-23 12 views
14

stworzyłem shortcode które wyświetlają pracowników, wygląd somthing HTML tak:skróconych wewnątrz SHORTCODE - 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> 

Więc stworzyłem 2 shortcodes:

[start_employee] - który zawiera <ul class="employee"> .. </ul>

[pracownik] - który zawiera treści o pracownika

i powinno działać tak:

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

ale kiedy umieścić go w wordpress edytor wyglądu HTML tak:

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

Chyba wiem dlaczego .. bo fuunction z start_employee zawierać:

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

Co czy powinienem to odczytać jako skrót?

Dziękuję.

+0

Mógłbyś może opublikować kompletny kod Funkcja shortcode za? Byłoby łatwiej ci pomóc i mogłoby pomóc innym osobom szukającym podobnych rozwiązań. – AJJ

Odpowiedz

9

Musisz użyć krótkich kodów rekurencyjnie, aby uzyskać wynik.

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

Jeśli funkcja rekurencyjna skonfigurować, tak jak w Cart66, można zrobić coś takiego:

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