После более длительного исследования я думаю, что нашел его.
Предпринятые шаги:
Во-первых, я проверил, поддерживает ли CKEditor теги HTML5 вообще, и это так. Таким образом, он не должен снимать их или изменять вообще. Как вы написали, <main class="someClass">
был окружен <p> </p>
- это могло произойти, если main
был распознан как встроенный элемент, а не блочный. Я копался в CKEDITOR.dtd
и оказалось, что main
существует и это блочный элемент. Все должно быть в порядке.
Чтобы проверить, является ли это проблемой CKEditor или WordPress, я проверил, что было записано в базу данных и что из нее получил CKEditor. Содержимое поста/страницы было таким же, как в примере ниже (единственное отличие заключалось в новых символах строк - так как CKEditor форматирует код):
<main class="someClass">
<p>There should be only 2 paragraphs inside the</p>
<pre><main class="someClass"></main></pre>
<p>element.</p>
</main>
Но код, возвращенный для редактирования, был другим
<p><main class="someClass"></p>
<p>There should be only 3 paragraphs inside the</p>
<pre><main class="someClass"></main></pre>
<p>element.</p>
<p></main></p>
<main class="someClass">
был обернут <p></p>
, затем CKEditor исправлял эти абзацы вокруг блочного элемента, и результат был таким, как вы написали:
<p> </p>
<main class='someClass'>
<p> </p>
После непродолжительной отладки ядра WordPress я нашел место, где были добавлены эти абзацы - функция wpautop
внутри formatting.php
https://developer.wordpress.org/reference/functions/wpautop/
Точнее, строка 469, который описывает все элементы блока:
$allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)';
и нет элемента main
.
Итак, у вас есть несколько вариантов:
- Отключить wpautop вообще (не рекомендуется)
- Отредактируйте исходники WordPress и добавьте этот элемент в список. Тогда помните об этом после каждого обновления WordPress.
Или сообщите об этом, создайте запрос на исправление/вытягивание и дождитесь исправления, затем обновите без какого-либо риска;)
person
Vokiel
schedule
21.05.2016
<p> </p>
после переключения на/с Visual/HTML, а также не отображается источник внутри CKEditor. - person Vokiel   schedule 11.05.2016<!-- somecontnet -->
комментария, например:<main class="someClass"> <p> Maybe there is a problem with the some content </p> <div> <p> Another paragraph </p> </div> </main>
И это сработало нормально -<p> </p>
не вставлено. - person Vokiel   schedule 20.05.2016