Intereting Posts
Плагин AddThis добавляет комментарии html в теги P Как вы обнаруживаете, что конкретное слово находится в конце файла the_title () Пользовательские поля в столбце, которые позже используются в цикле wordpress media_handle_upload для работы с blob или base64 Как использовать post_title пользовательского типа сообщения как таксономии Помощь с IF имеет фокус тогда … statment шаблон продукта woocommerce дополнительно настраиваемое поле под описанием продукта Автоматизация абзацев на странице сообщений с уникальной привязной ссылкой Добавить значение автоинкремента в пользовательскую мета Как удалить пустой <p> </ p> в коротком коде заголовка wp? Добавить расширение .html в таксономию пользовательского типа Добавить внешнюю ссылку в меню администратора в бэкэнд Несколько циклов для плагина Выделите родительский пункт меню, когда дочерний пост Добавление пользовательской таксономии в том же меню с двумя настраиваемыми типами сообщений

проблема с вложением коротких кодов

Я разрабатываю тему wp, и я хочу иметь короткий код, который можно использовать в серверном времени из статьи.

в functions.php у меня есть:

function twoColPostcardfn($atts, $content){ extract(shortcode_atts(array( 'image'=>'', 'text'=>'', 'title'=>'', 'boxlink'=>'', 'float'=>'' ), $atts)); $bob='<span class="twoColPostcard ">'.$content.'</span>'; return $bob; } add_shortcode( 'twoColPostcard', 'twoColPostcardfn' ); 

в статье я имею:

 <p>[twoColPostcard]</p> <p>hello from the first postcard</p> <p>[/twoColPostcard]</p> <p>[twoColPostcard]</p> <p>hello from the second postcard</p> <p>[/twoColPostcard]</p> 

И я хочу, чтобы мой результат был

 <span class="twoColPostcard"><p>Hello from ...</p></span> <span class="twoColPostcard"><p>Hello from ...</p></span> 

Но вместо этого я получаю:

 <span class="twoColPostcard"> <p></p> <p>hello from the first postcard</p> <p><span class="twoColPostcard "></span></p> <p>hello from the second postcard</p> <p></p> </span> 

Другими словами, второй короткий код начинается до того, как первый закончен, так что они заканчиваются вложенными (а второй – пустым)

Я использовал код, чтобы помочь, но он не работает, и я не знаю почему. Я пробовал вставить это в мои функции, так как безрезультатно

 remove_filter( 'the_content', 'wpautop' ); add_filter( 'the_content', 'wpautop' , 12); 

поместите фильтр удаления сначала на имя, измените свой span на div или у вас будут проблемы с некоторыми браузерами:

 remove_filter( 'the_content', 'wpautop' ); add_filter( 'the_content', 'wpautop' , 12); function twoColPostcardfn($atts, $content){ extract(shortcode_atts(array( 'image'=>'', 'text'=>'', 'title'=>'', 'boxlink'=>'', 'float'=>'' ), $atts)); $bob='<div class="twoColPostcard ">'.$content.'</div>'; return $bob; } add_shortcode( 'twoColPostcard', 'twoColPostcardfn' ); 

или изменить содержимое на другой span , тэг p является тегом блока, а тег span является встроенным тегом, тэг блока – внутри встроенного.

 [twoColPostcard]<span>hello from the first postcard</span>[/twoColPostcard] [twoColPostcard]<span>hello from the second postcard</span>[/twoColPostcard] 

Похоже, вы добавляете ненужные теги <p> вокруг ваших коротких кодов. Попробуйте это вместо этого:

 [twoColPostcard]<p>hello from the first postcard</p>[/twoColPostcard] [twoColPostcard]<p>hello from the second postcard</p>[/twoColPostcard] 

Зачем использовать теги p вообще? Не вводите новые строки, и теги p не будут добавлены. Просто добавьте все в очередь:

 [twoColPostcard]hello from the first postcard[/twoColPostcard[twoColPostcard]hello from the second postcard[/twoColPostcard] 

Затем измените свой короткий код, чтобы включить теги p:

 function twoColPostcardfn($atts, $content){ extract(shortcode_atts(array( 'image'=>'', 'text'=>'', 'title'=>'', 'boxlink'=>'', 'float'=>'' ), $atts)); $bob='<span class="twoColPostcard "><p>'.$content.'</p></span>'; return $bob; } add_shortcode( 'twoColPostcard', 'twoColPostcardfn' );