我正在使用图库来附加图像,因此每个帖子的第一个图库用于生成一个滑块,仅此而已。这就是为什么我不想在邮报的内容中看到它。比如说,我有一篇帖子是这样的:
[gallery ids="1,2"] // hide
[gallery ids="3,4"] // display
[gallery ids="5,6"] // display
有没有什么方法可以阻止第一个图库中每篇文章的内容?
#gallery-1 { display: none !important; }
效果很好,但非常丑陋:)而且它只隐藏了画廊,但它仍然存在,JS也是如此。
最合适的回答,由SO网友:birgire 整理而成
你可以使用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 );
这应该只删除帖子中的第一个库。