0

新しいテーマを作成しているときに、WordPress がすべての<samp></samp>タグを<p></p>. 仕様によると<samp>、プログラムまたはコンピューティング システムからの (サンプル) 出力を表します。<kbd>これはブロック レベルの要素ではなく、 、<var>またはと同様にインラインで使用できます<code>

問題は、WordPress がこのタグを段落でラップすることです。このコードでこの問題を解決できました:

function righter_filter_ptags($content) {
    $content = preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);
    $content = preg_replace('/<p>\s*(<iframe .*>*.<\/iframe>)\s*<\/p>/iU', '\1', $content);
    $content = preg_replace('/<p>\s*(<samp .*>*.<\/samp>)\s*<\/p>/iU', '\1', $content);
    return $content;
}
add_filter('the_content', 'righter_filter_ptags');

実際には、画像と iframe からも P を取り除きます。期待される結果 - all が得られ、タグ<img>には折り返し段落がなくなりましたが、WordPress は の前にタグを追加するようになりました。私は「テキスト」モードで作業しており、改行なしですべてを 1 行で書いています。サンプルコードは次のとおりです。<iframe><samp><br><samp>

We have not only <code>code</code> tag, but also <kbd>kbd</kbd> and <samp>samp</samp> tags.

Web サイトの HTML ソース コードのサンプル出力は次のとおりです。

<p>
We have not only 
<code>code</code>
tag, but also 
<kbd>kbd</kbd>
and
<br>
<samp>samp</samp>
</p>
<p>
tags.
</p>

すべての改行で、まさにこれに見えます。<br>直前のこのタグ<samp>と、別の段落にラップされた後のコンテンツ<samp>(「tags.」という単語)を除いて、すべて問題ありません。それを削除する方法はありますか?たくさんのグーグルをしましたが、結果はありませんでした。

4

1 に答える 1