サポート » 使い方全般 » 画像のみpタグで囲わないようにする

  • 解決済 ru_

    (@ru_)


    検索してみていくつかのサイトに記述されていた下記を
    参考にしてみましたが、imgタグのpタグが消えてくれませんでした。

    <?php
    function remove_p_on_images($content){
    //画像のみpタグで囲わない
    return preg_replace(‘/<p>(\s*)(<img .* \/>)(\s*)<\/p>/iU’, ‘\2’, $content);
    }
    add_filter(‘the_content’, ‘remove_p_on_images’);
    ?>

    利用しているプラグインを全停止してみましたがダメでした。
    利用しているバージョンが4.1.4なのですが、利用しているバージョンでは動かないのでしょうか?

    もしくは、代替案などあったらご教授お願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • 実際に試してみました。画像にリンクを付けなければpタグが消えましたよ。

    preg_replace のパターンに出てくる (\s*) はスペース・タブの繰り返しです。そのため、imgタグがaタグで囲まれていると(画像にリンクを付けてあると)そのパターンにマッチしないので、置き換え(pタグの削除)が行われません。

    トピック投稿者 ru_

    (@ru_)

    gblsmさん

    検証、ご説明いただきありがとうございます。
    もう少し正規表現を勉強して理解してから利用した方が良いようですね。

    投稿のソースは下記のようになっています。
    aタグで囲まれているとマッチしないとのことなので、

    <p><img ***></p>
    <p>あああああ</p>
    <p>あああああ</p>

    上記のソースから、リンクなしで画像を挿入してみましたが、私の環境では置き換えが行われませんでした。

    再度、色々とサイトを見て回って見つけたサイトの下記を試したところ
    私の思うような感じになりました。
    囲っているpタグを削除ではなくdivに置き換えています。

    https://interconnectit.com/blog/2011/06/16/how-to-remove-p-tags-from-images-in-wordpress/

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「画像のみpタグで囲わないようにする」には新たに返信することはできません。