У меня в настоящее время возникает проблема с получением идентификатора настраиваемого типа сообщений из вложенного короткого кода. Я не уверен, что это возможно.WordPress: Получить идентификатор настраиваемого типа сообщений в вложенных коротких кодах
Дополнительная информация описать мой сценарий:
- Я создал «Activity» ТАМОЖЕННЫЙ ПОСТ тип
- я создал шорткод под названием «деятельность», которая отображает содержимое обычая деятельности типа, основанный на его ID отправить, это может быть набор с использованием атрибутами шорткода
- Я создал шорткод под названием «текстовое поле», который отображает текстовое поле в пределах типа acitivty таможенного поста
Проблема, с которой я сталкиваюсь, заключается в том, что я пытаюсь получить «идентификатор действия» из короткого кода Textarea, но я не могу понять, как это сделать.
Пожалуйста, смотрите диаграмму, чтобы лучше описать мою ситуацию по этой ссылке:
https://www.dropbox.com/s/a9bgyjdq9m92qpg/WP-Support---Get-ID-within-Nested-Shortcodes.png?dl=0
активность Сокращенный код:
function display_activity($atts, $content = null){
$a = shortcode_atts(array(
'id' => null,
), $atts) ;
if (!is_null($a['id'])){
$activityId = intval($a['id']);
if (is_int($activityId) && $activityId > 0){
$activityObj = get_post($activityId);
$theTitle = sanitize_post_field('post_title', $activityObj->post_title, $activityId, 'display');
$theContent = apply_filters('the_content', $activityObj->post_content);
$html = "<div id='sbusuws-activity-" . $activityId . "' class='sbusuws-activity'>";
$html .= "<h3 class='sbusuws-activity-title'>" . $theTitle . "</h3>";
$html .= "<div class='sbusuws-activity-content'>";
$html .= do_shortcode($theContent);
$html .= "</div>";
$html .= "</div>";
return $html;
}
}
}
Textarea SHORTCODE:
function display_textarea($atts){
$activityId = ""; // <--- This is the problem
$textareaId = $activityId . "-sbusuws-activity-textarea";
$html = "<textarea id='" . $textareaId . "' rows='5' cols='20'>";
return $html;
}
Идея состояла в том, чтобы сделать текстовое поле шорткод как можно более простым, а именно: [текстовое поле]
Я был бы признателен за любую помощь в этом вопросе.
Спасибо!
Каждый шорткод работает независимо друг от друга. Вам необходимо передать идентификатор в текстовый код. – Nilambar
@ Ниламбар Спасибо за ваш ответ. Чтобы придерживаться моей первоначальной цели, чтобы сделать код [textarea] простым для пользователей. Я изучаю способ динамического добавления идентификатора активности в качестве атрибута в shortcode textarea в Post Save. В настоящее время я смотрю: [сохранить сообщение] (http://codex.wordpress.org/Plugin_API/Action_Reference/save_post) и [получить регулярное выражение для короткого кода] (http://codex.wordpress.org/Function_Reference/get_shortcode_regex). Надеюсь, я смогу заставить его работать. :) –
Вам нужен текущий идентификатор сообщения в коротком коде? –