私は画像を添付するためにギャラリーを使用しているので、すべての投稿の一番最初のギャラリーはスライダーを生成するために使用され、それ以上は何もしません。だからこそ私はそれをポストのコンテントで見たくないのです。私はこのように見える単一の投稿があるとしましょう:
[gallery ids="1,2"] // hide
[gallery ids="3,4"] // display
[gallery ids="5,6"] // display
最初のギャラリーを投稿ごとにコンテンツからブロックする方法はありますか。
#gallery-1 { display: none !important; }
うまく機能しますが、地獄のように醜いです:)またそれはギャラリーを非表示にするだけですが、それはまだそこにあります、同じことはそれがそれのJSにも言えます。
preg_replace()
を使うこともできますが、$output
フィルタを使ってpost_gallery
を上書きし、最初の実行後にフィルタを削除する方がはるかに簡単だと思います。
/**
* Remove the output of the first gallery
*
* @param string $output
* @param array $attr
* @return string $output
*/
function wpse125903_remove_the_first_gallery( $output, $attr )
{
// Run only once
remove_filter( current_filter(), __FUNCTION__ );
// Override the first gallery output
return '<!-- gallery 1 was here -->'; // Must be non-empty.
}
add_filter( 'post_gallery', 'wpse125903_remove_the_first_gallery', 10, 2 );
これにより、投稿の最初のギャラリーのみが削除されます。