我目前无法从嵌套的短代码中获取自定义帖子类型的ID。我不确定这是否可行。
描述我的场景的更多信息:
我遇到的问题是我正在尝试从Textarea短代码中获取“活动ID”,但我无法想办法做到这一点。
请通过此链接查看图表以更好地描述我的情况:
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短代码:
function display_textarea($atts){
$activityId = ""; // <--- This is the problem
$textareaId = $activityId . "-sbusuws-activity-textarea";
$html = "<textarea id='" . $textareaId . "' rows='5' cols='20'>";
return $html;
}
这个想法是让textarea短码尽可能简单,即:[textarea]
我很感激这个问题的任何帮助。
谢谢!
答案 0 :(得分:1)
如果适用于你的display_activity
方法,请尝试此操作..
$theContent = str_replace('[textarea]','[textarea id="'.$activityId.'"]', $theContent);
$html .= "<div class='sbusuws-activity-content'>";
$html .= do_shortcode($theContent);
$html .= "</div>";