2011-01-23 9 views
14

私は従業員を表示するショートコードを作成し、HTMLはそのよう気にいらを見て: - <ul class="employee"> .. </ul>はショート内部ショートコード - ワードプレス

が含まれてい

[start_employee]:

<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] 
[employee img=".." name=".." description=".."] 
[employee img=".." name=".." description=".."] 
[/start_employee] 

が、私は、HTMLはそのように見えるのWordPressエディタでそれを置くとき:

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

何:

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

私はstart_employeeのfuunctionが含まれている理由..ので知っていると思います私はそれを短文として読むべきですか?

ありがとうございます。

+0

あなたはおそらくショートの機能の完全なコードを投稿してもらえますか?それはあなたを助けることがより簡単になり、同様の解決策を探している他の人たちを助けることができます。 – AJJ

答えて

42

ショートコードは自動的にネストされません。do_shortcode($content)に電話する必要があります。 http://codex.wordpress.org/Shortcode_APIcaption_shortcode()の例を参照してください。

9

結果を得るには、ショートコードを再帰的に使用する必要があります。

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

あなたは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]'); 
関連する問題