記事で使用しているクロスゲートの画像のしたには、スクエア・エニックスの著作権表示をしています。
このページの検索結果や記事詳細ページの横に表示している関連記事では画像は表示しないのでこの部分は不要です。そういうわけで、表示部分でそれを削除できないかなと。
多分プラグイン内部でタグをすべて削除している行の前に「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をコピーしました
コメント