こんにちは、私は本当にあなたの助けが必要です。
私がwordpressでギャラリーを使用し、その列を1に設定するたびに、Wordpressは自動的に<br style="clear: both"/>
の後に<dl class="gallery-item">
を追加します。私は本当にこの振る舞いを防ぐ必要があるので、私は自分のfunctions.phpにフィルタを追加したいと思います。
以下の例は動作しません。
add_filter( 'post_gallery', 'remove_br_gallery', 9);
function remove_br_gallery($output) {
return preg_replace('#\<br*.?\>#is', '', $output);
}
add_filter( 'the_content', 'remove_br_gallery', 9);
function remove_br_gallery($output) {
return preg_replace('#\<br*.?\>#is', '', $output);
}
これもしません:
return str_replace('<br style="clear: both">', '', $output);
どのように私はそれを解決することができましたか?私のギャラリーの中に<br style="clear: both"/>
を入れたくないのです。
編集:ショートコードが処理された後、あなたはあなたのフィルタを呼び出す必要があり、それに10以上の優先順位を与え、そしてあなたは複数行の表現で一致しなければなりません。
私のインスタレーションで、そして標準のギャラリーのshortagを使ってこの作品を試してみてください。
add_filter( 'the_content', 'remove_br_gallery', 11, 2);
function remove_br_gallery($output) {
return preg_replace('/<br style=(.*)>/mi','',$output);
}
あるいは、代わりに、スタイルシートの上書きを介して<br>
の効果を無効にすることもできます。
body dl.gallery-item + br { display: none; }
きれいなマークアップを得るためにJustin Tadlockの Cleaner Gallery pluginを使うことができます。
Preg_replaceにアポストロフィを含める必要があります。
return preg_replace('/<br style="(.*)">/mi','',$output);