Короткие коды внутри короткого кода – wordpress

Я создал короткий код, который отображает сотрудников, HTML выглядит примерно так:

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

Поэтому я создал 2 коротких кода:

[start_employee] – который содержит <ul class="employee"> .. </ul>

[сотрудник] – содержащий контент о сотруднике

И это должно сработать так:

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

но когда я помещаю его в редактор WordPress, html выглядит так:

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

Я думаю, я знаю, почему … потому что функция start_employee содержит:

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

Что я должен делать, чтобы читать его как короткий код?

Спасибо.

Короткие коды не устанавливаются автоматически – вы должны сами вызвать do_shortcode($content) . См. caption_shortcode() в http://codex.wordpress.org/Shortcode_API .

Вы должны использовать короткие коды для получения результата.

 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"); 

Если у вас установлена ​​рекурсивная функция, как в Cart66, вы можете сделать что-то вроде этого:

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