0

multiEdit プラグインを使用して、テンプレートにいくつかのコンテンツ領域を作成しています。

これらの領域の 1 つは、jQuery サイクルを使用して画像を回転させる写真用です。

しかし、いつものように、Wordpress (またはむしろエディター) は、すべての画像を<p>タグでラップしています。

CSS-Tricks の関数 hack を使用して<p>、コンテンツからタグを削除しました。

function filter_ptags_on_images($content){
return preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);
}

add_filter('the_content', 'filter_ptags_on_images');

しかし、私が知る限り、それはただ探しているだけで、他のものは探してthe_contentいません。

Multiedit はこれを使用します:<?php multieditDisplay('name_of_region'); ?>テンプレートにコンテンツ ブロックを表示します。

そこで、関数を次のように変更しようとしました。

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

しかし、そのような幸運はありません。

だから、私が何かを見逃しているのか、それとも間違ったやり方をしているだけなのか、よくわかりません。

4

2 に答える 2

0

この例のようにテンプレートに multiEdit フィールドを配置する代わりに

<?php multieditDisplay('Top'); ?>

このように2番目のパラメータとしてtrueを渡すことで、自動印刷を防ぐことができます

<?php echo multieditDisplay('Top', true); ?>

したがって、出力からすべてのタグを取り除きたい場合は、これを試してください

<?php echo strip_tags(multieditDisplay('Top', true)); ?>

特定のタグを含めたい場合は、含めるタグのリストを提供し、次のように strip_tags にパラメーターとして渡します

<?php echo strip_tags(multieditDisplay('Top', true), '<p><a>'); ?>
于 2014-05-02T18:40:09.377 に答える
0

わかりました、回避策を見つけました。

私はそれについてここに書きました:

http://ultraloveninja.roon.io/filtering-paragraph-tags-with-the-wordpress-multiedit-plugin

于 2013-12-20T22:08:26.923 に答える