Ответ 1
Штрих-коды не автоматически вставляются - вам нужно позвонить do_shortcode($content)
самостоятельно. См. Пример caption_shortcode()
на http://codex.wordpress.org/Shortcode_API.
Я создал короткий код, который отображает сотрудников, 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>
[employee] - содержащий контент о сотруднике
И он должен работать следующим образом:
[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="#" onclick="location.href='http://yoursite.com/beta/member-log-in/'; return false;">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]');