2011-01-23 37 views
14

tôi đã tạo một shortcode mà hiển thị các nhân viên, HTML nhìn somthing như thế:mã ngắn bên trong một 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> 

Vì vậy, tôi đã tạo ra 2 shortcodes:

[start_employee] - trong đó có <ul class="employee"> .. </ul>

[nhân viên] - chứa nội dung về nhân viên

Và nó sẽ hoạt động như sau:

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

nhưng khi tôi đặt nó trong trình soạn thảo wordpress giao diện html như thế:

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

Tôi nghĩ rằng tôi biết lý do tại sao .. vì fuunction của start_employee chứa:

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

gì tôi có nên đọc nó làm shortcode không?

Cảm ơn bạn.

+0

Ông có thể có lẽ post đoạn code hoàn chỉnh các chức năng của shortcode? Nó sẽ dễ dàng hơn để giúp bạn và nó có thể giúp những người khác tìm kiếm các giải pháp tương tự tốt hơn. – AJJ

Trả lời

9

Bạn phải sử dụng mã ngắn một cách đệ quy để nhận kết quả.

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

Nếu bạn đã một hàm đệ quy thành lập, như trong Cart66, bạn có thể làm một cái gì đó như thế này:

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]'); 
Các vấn đề liên quan