web-dev-qa-db-ja.com

ラップショートコードと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>

注意してください:そしてPara4終了

実際にはそうです。角カッコ<と挿入されていないもの

私たちのスコアの前に。

私が言ったことのない改行やオープンがあってはいけません

言うまでもありませんが、それを閉じることはできません。

完全版(削除)は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()が実行される前に実行された例です。これは、ショートコード内の残りのコンテンツのすべての段落を固定します。

1
Jimbo

この問題を解決する方法は、コンテンツを回避するためのハックとして<p>タグでコンテンツをラップすることです。 WPが正しく検出されないため、唯一の方法と思われます。

0
Jimbo