Добавить HTML с помощью Shortcode

Я написал плагин WordPress с коротким кодом. Шорткод находится на странице WordPress, на которой есть другие короткие коды. Другие короткие коды выводят HTML, и я хотел бы добавить HTML из моего короткого кода в этот вывод.

Мне было интересно, могу ли я использовать DOMDocument и getElementById для этого.

Страница WordPress выглядит так:

[Shortcode #1] [Shortcode #2] [Shortcode #3] [date_info] 

Мой плагин делает это:

 function date_important_info(){ ob_start(); display_date($date); $html = do_shortcode( ob_get_clean() ); return $html; function display_date($date){ ?> <div style=""> <span>Date:</span> <span><?php echo $date ?></span> </div> <?php } } add_shortcode('date_info','date_important_info'); 

В настоящее время мой короткий код выводится в нижней части страницы WordPress. Я хочу, чтобы выходные данные моего короткого кода добавлялись к div в HTML, который выводится одним из других коротких кодов.

Solutions Collecting From Web of "Добавить HTML с помощью Shortcode"

Прежде всего. Вы не должны использовать echo внутри короткого кода, если нет способа вернуть значение. В вашем случае вы можете просто преобразовать его в функцию, которая возвращает значение:

 function date_important_info(){ return display_date($date); function display_date($date){ $data = " <div id='my-shortcode' style=''> <span>Date:</span> <span> {$date} </span> </div>"; return $data; } } add_shortcode('date_info','date_important_info'); 

Теперь о вашей проблеме с добавлением данных. Вы можете выбрать вывод HTML своего короткого кода и добавить его к другому элементу с помощью jQuery. Вот краткий пример:

 // Get shortcode's content var content = $('#my-shortcode').outerHTML(); // Add it after the element you want $('#the-element').after(content); 

Я добавил идентификатор в оболочку вашего короткого кода, чтобы выбрать его через jQuery. Вы также можете использовать .append() или .before() , исходя из ваших потребностей.