0

投稿を作成するときに画像からpタグを削除する解決策を見つけましたが、これは1つの画像に対してのみ機能します。

それが機能する画像については、私はfirebugを見て、これが示されているものです:

<div class="entry-content">
<a href="http://localhost:8888/wordpress/wp-content/uploads/2013/02/img-1.png">
<img class="alignnone size-full wp-image-50" width="520" height="320" src="http://localhost:8888/wordpress/wp-content/uploads/2013/02/img-1.png" alt="img-1">
</a>

などなど・・・すごい!

しかし、別の画像を別の投稿にアップロードすると、次のことが起こります。

<p>
<img class="alignnone size-full wp-image-50" width="520" height="320" src="http://localhost:8888/wordpress/wp-content/uploads/2013/02/img-1.png" alt="img-1">
<br>
Lorem ipsum dolo....
</p>

これは、関数ファイルで使用している関数です。

<?php
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');
?>

そのため、pタグを削除する機能を備えた別の「戻り行」を追加する方法はありますか?

その場合にのみ機能するように見えるため

..? これが理にかなっていることを願っています!それが役立つ場合、これは私の画像のcssです:

width:100%;
height:auto;
min-width:320px;
}

最初の画像では機能したが、他の画像では機能しなかったと言うように、画像を投稿の全幅にし、コンテンツで段落タグを使用したいだけです!

ありがとう

4

1 に答える 1

0

Wordpress は<p>、コンテンツ フィルターを介して実行すると、とりわけタグを追加します。余分なタグが必要ない場合は、フィルターをまったく通過させないか、ここで使用できると思われるフィルターをフィルターのドキュメントで調べてください。

あなたのソリューションは問題ないと思いますが、正規表現は最初の出現しかないと思います。preg_match_all正規表現に使用してみてください。

http://codex.wordpress.org/Plugin_API/Filter_Reference

于 2013-02-27T12:13:33.657 に答える