プラグイン表示内でのdivタグの除去

Webネタ・サイト更新

 記事で使用しているクロスゲートの画像のしたには、スクエア・エニックスの著作権表示をしています。
 このページの検索結果や記事詳細ページの横に表示している関連記事では画像は表示しないのでこの部分は不要です。そういうわけで、表示部分でそれを削除できないかなと。
 多分プラグイン内部でタグをすべて削除している行の前に「preg_replace」文を使えばいいのかなと思ったのだけど、私はその辺詳しくないので、Nucleus日本語フォーラムで質問してみました。
 いくつかのレスの中、やっぱり正規表現でdivタグは削除可能な模様。ちと遅くなったけど、うちのサイトで導入してみました。


 まずは関連記事を表示しているNP_Related 0.3jから。
496行目

$str_snippet = shorten(strip_tags($row->ibody),$this->maxlength2,'...');

$str_nodiv = preg_replace('/<div class="ni-img">((?:(?>(?:(?!(]*>|<\/div>)).)*)|(?R))*)<\/div>/s', '', $row->ibody);
$str_nodiv = preg_replace('/<div class="img-r">((?:(?>(?:(?!(]*>|<\/div>)).)*)|(?R))*)<\/div>/s', '', $str_nodiv);
$str_snippet = shorten(strip_tags($str_nodiv),$this->maxlength2,'...');

に変更
 次に、検索結果を表示しているプラグインNP_ChopperDisc 07
222行目

$syndicated = strip_tags($item->body);
$syndicated .= strip_tags($item->more);

$str_nodiv = preg_replace('/<div class="ni-img">((?:(?>(?:(?!(]*>|<\/div>)).)*)|(?R))*)<\/div>/s', '', $item->body);
$str_nodiv = preg_replace('/<div class="img-r">((?:(?>(?:(?!(]*>|<\/div>)).)*)|(?R))*)<\/div>/s', '', $str_nodiv);
$syndicated = strip_tags($str_nodiv);
$str_nodiv = preg_replace('/<div class="ni-img">((?:(?>(?:(?!(]*>|<\/div>)).)*)|(?R))*)<\/div>/s', '', $item->more);
$str_nodiv = preg_replace('/<div class="img-r">((?:(?>(?:(?!(]*>|<\/div>)).)*)|(?R))*)<\/div>/s', '', $str_nodiv);
$syndicated .= strip_tags($str_nodiv);

に変更。
 現在なかなかいい感じで表示されてる模様。正規表現ってすごいな。

サクラキャンドル

 都内在住。理系高校理系大学を経て、電機関係の会社でリーマンやってます。
 仕事内容とサイトの内容はほとんど関係がなく、趣味の延長線上でいろいろと紹介します。

サクラキャンドルをフォローする
スポンサーリンク
農場主の日常

コメント

タイトルとURLをコピーしました