我想阻止在主页上列出帖子时显示帖子的图库。
我认为在主页上发帖时会使用add_filter
和apply_filter
。
您可以点击添加媒体按钮向帖子添加图库。您可以选择现有图像或上传将在帖子中创建图库的其他图像。这会在$post['content']
中嵌入一个类似[gallery ids="37,38,39,40,41,42]
的短代码。
问题在于,默认情况下会显示帖子包含在主页上以及个人帖子本身。
更新:这就是我现在正在做的事情,以达到要求。我怀疑会有更优雅的方式。
<div class="entry-content">
<!-- Begin Post Content -->
<?php if ( is_single() ) : ?>
<?php the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'faceboard' ) ); ?>
<?php else : // Filter Gallery ShortCode out ?>
<?php
$content = '';
$content = get_the_content();
$content = preg_replace('/\[gallery\sids="[0-9]+(,[0-9]+)*,?"\s?(royalslider="\d")?\]/s',"",$content);
echo wpautop( $content, 1);
?>
<?php endif; // is_single() ?>
<!-- End Post Content -->
<?php wp_link_pages( array( 'before' => '<div class="page-links">' . __( 'Pages:', 'faceboard' ), 'after' => '</div>' ) ); ?>
</div><!-- .entry-content -->
答案 0 :(得分:0)
您可以将以下内容添加到主题的functions.php
文件或custom plugin(更好,因为您可以在不触及主题的情况下将其停用)。
过滤器post_gallery
用于创建自己的图库,默认情况下$content
参数为空。如果它返回空,则处理原始的[gallery]
短代码
在这里,我们使用虚拟空值,因此过滤器被认为我们正在传递一些实际的图库内容,但它只是一个空白区域。
add_filter( 'post_gallery', 'disable_home_galleries_so_17635042', 10, 2 );
function disable_home_galleries_so_17635042( $content, $atts )
{
// http://codex.wordpress.org/Conditional_Tags
if( is_home() )
return ' ';
return $content;
}