如果帖子上有图库,则隐藏缩略图

时间:2014-12-16 作者:Nsokyi

在帖子中,我希望始终显示两个选项中的一个-

如果帖子只有缩略图,则显示缩略图。

如果岗位有both 缩略图和图库然后显示唯一的图库,不显示缩略图。

我正在使用一个名为metaslider.

但我不知道php将如何包装这两个选项?

        <p class="post-image"><?php the_post_thumbnail(\'large\'); ?></p>
        <p class="post-gallery"><?php the_field(\'post_gallery\'); ?></p>

2 个回复
SO网友:kaiser

只需使用公共API函数:has_shortcode( $content, $tag );. 它使用shortcode_exists( $shortcode ); 在内部搜索global $shortcode_tags 正在搜索的短代码的数组。如果成功,它将使用get_shortcode_regex() 搜索实际的短代码-这将节省您相当多的时间并避免错误。

the_title();
if ( has_shortcode( get_the_content(), \'gallery\' ) )
{
    the_content();
}
else 
{
    // show default view - example:
    the_post_thumbnail( \'your-desired-size\' );
    the_content();
}
Thegallery_shortcode( $post_id ); 函数也可能有帮助。如果您使用的插件处理库的方式不同于WP-core,那么这可能不起作用。无论如何,请确保您在上面更改has_shortcode() 调用以使用您正在使用的快捷码(或您正在使用的插件)。

SO网友:Karun

您可以进行preg\\u匹配以检查内容是否包含库短代码

    <?php 
         $re = "/\\\\[metaslider id=([0-9]+).*]/s"; 
         if(preg_match($re, get_the_content(), $matches) && has_post_thumbnail()){
             ?>
             <p class="post-gallery"><?php the_field(\'post_gallery\'); ?></p>
             <?php
         }else{
             ?>
             <p class="post-image"><?php the_post_thumbnail(\'large\'); ?></p>
             <?php
         }
     ?>
上面的代码检查内容是否存在快捷码[库],以及是否有后期缩略图。如果执行,则执行第一个块,否则执行第二个块

结束