Wordpress / Шорткоды: HTML-разметка удалена Wordpress - PullRequest
0 голосов
/ 29 декабря 2018

По какой-то причине Wordpress удаляет большую часть разметки HTML из вывода шорткода, в то время как мне нужно использовать разметку HTML внутри этих шорткодов.

Есть несколько предложений по Stackoverflow, но ни одно из них не сработало для меня.Давайте рассмотрим пример.

Я называю свой шорткод в WP простым [myshortcode id = "1"]

В моем PHP я использую это:

function myshortcode($atts)
{
   ob_start();
   ?>
   <ul><li>test</li><li>test2</li></ul>
   <?PHP
   return ob_get_clean();
}
add_shortcode( 'myshortcode', 'myshortcode' );

Вывод, который я получаю: test1test2 без разметки HTML

Если я использую ссылки (www), они сохраняются, но div, span, ul, li, ... систематически удаляются.

Я попытался добавить разметку в конце с оператором return, но это не работает.Я попробовал то, что предлагается здесь https://codex.wordpress.org/Shortcode_API#Output, но оно не работает.

У вас есть идеи?

Спасибо!

Лоран

1 Ответ

0 голосов
/ 29 декабря 2018

Это работает в новой установке:

function myshortcode_53969195( $atts ) {

    // Attributes
    $atts = shortcode_atts(
      array(
        'id' => '1',
      ),
      $atts,
      'myshortcode'
    );

    $output = '<ul><li>test</li><li>' . $atts['id'] . '</li></ul>';
    return $output;


}
add_shortcode( 'myshortcode', 'myshortcode_53969195' );

Затем вы можете отобразить шорткод в редакторе контента как [myshortcode id=XX] или в файлах вашего шаблона, повторяя его:

echo do_shortcode('[myshortcode id=XX]');

Если он продолжает удалять теги html, проверьте, есть ли у вас какой-либо плагин или функция, которая может изменить вывод содержимого.Надеюсь, это поможет.

...