Оберните короткие коды и wpautop


WP в данный момент заставляет меня рвать на себе волосы (последние несколько дней пытаюсь решить).

Пытаюсь сделать несколько простых коротких кодов, которые охватывают различные пункты статьи. Однако wpautop() Я верю, что это сеет хаос. Я пробовал различные предложения, найденные в сети, включая viperbonds (http://www.viper007bond.com/2009/11/22/wordpress-code-earlier-shortcodes /), чтобы контролировать, когда запускаются короткие коды, но я все еще получаю различные неприятности, будь то шорткод выполняется до или после wpautop. Он только отформатирует шорткод без ошибок с полностью отключенным wpautop, но остальная часть сообщения тогда не отформатирована.

У меня есть шорткод [REVIEW_SUMMARY] Текст заключения/параграфы здесь... написанный редактором [/REVIEW_SUMMARY] простыми словами, он строит определенный согласованный набор заголовков и из различных пользовательских метаданных строит оценки, изображения и т. Д. По большей части работает нормально.

Проблема в том, что у нас есть скоринговая плитка, которая выходные данные как часть окончательного содержимого этого шорткода:

<div class="tile-score"><div><span>9.9</span><small>Out of 10</small></div><b>Our score</b></div>

Полный вывод примера (немного удален, потому что он слишком длинный) шорткода с отключенным wpautop:

<section><h1>Summary</h1>
<div id="score_review_container" class="clearfix"><a href="#" class="score-review-image"><img src="#" width="99" height="180" alt="#" /></a><div class="score-review-meta"><h2><a href="#">Item Reviewed</a></h2><div class="tile-score"><div><span class="ft-arb">9.9</span><small>Out of 10</small></div><b>Our score</b></div></div></div>Paragraph1...

Paragraph2...

Paragraph3...

Paragraph4...</section>        

В нем определенно нет разрывов строк и т. Д., Которые WP должен форматировать (помимо того, что вы ожидаете от абзаца.

Однако включение wpautop на нем генерирует (выполнялось до wpautop()):

<div class="tile-score">
<div><span>9.9</span><small>Out of 10</small></div>
<p><b>Our score</b></div>

Полная версия (немного удаленная) сгенерированного кода и выполненная до wpautop() запуски:

<section>
  <h1>Summary</h1>
  <div id="score_review_container" class="clearfix">
    <a href="#" class="score-review-image">
      <img src="#" width="99" height="180" alt="#" />
    </a>
    <div class="score-review-meta">
      <h2><a href="#">Item Reviewed</a></h2>
      <div class="tile-score">
        <div><span class="ft-arb">9.9</span><small>Out of 10</small></div>
        <p><b>Our score</b>
      </div>
    </div>
   </div>
   <p>Paragraph1</p>
   <p>Paragraph2</p>
   <p>Paragraph3</p>
   <p>Paragraph4/p>
  </div>
</section>

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: затем пункт 4 заканчивается

На самом деле так и есть. В нем отсутствует скобка < и вставленный

До Нашего счета.

Ни в коем случае не должно быть никаких разрывов строк, о которых я не говорил, и не должно быть открытого

Тег, не говоря уже о том, что он не закрывает его, и тег rogue broken end p.

Полная версия (удаленная) запускалась ПОСЛЕ wpautop():

<section>
  <h1>Summary</h1>
  <div id="score_review_container" class="clearfix">
    <a href="#" class="score-review-image">
      <img src="#" width="99" height="180" alt="#" />
    </a>
    <div class="score-review-meta">
      <h2><a href="#">Item Reviewed</a></h2>
      <div class="tile-score">
        <div><span class="ft-arb">9.9</span><small>Out of 10</small></div><b>Our score</b></div></div></div>Para1...</p><p>Para2...</p><p>Para3...</p><p>Para4...</section>

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

Author: Jimbo, 2013-03-08

1 answers

Думаю, тогда способ исправить это - обернуть содержимое в теги <p> в качестве взлома, чтобы обойти его. Кажется, это единственный способ, так как WP не обнаружит его должным образом.

 0
Author: Jimbo, 2013-03-11 14:44:45