新しいテーマを作成しているときに、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.」という単語)を除いて、すべて問題ありません。それを削除する方法はありますか?たくさんのグーグルをしましたが、結果はありませんでした。