在主页上阻止显示帖子库

时间:2013-07-13 23:17:11

标签: wordpress

我想阻止在主页上列出帖子时显示帖子的图库。

我认为在主页上发帖时会使用add_filterapply_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">&rarr;</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 -->

1 个答案:

答案 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 '&nbsp;';

    return $content;
}