如果函数不返回任何内容,则不显示html

时间:2011-12-12 作者:Corbula

此问题与下面的问题非常相似,但需要不同的解决方案。

Don't display html if custom field is empty

我使用插件相关的帖子缩略图,但我使用模板文件中的模板标记来显示相关产品。

<?php get_related_posts_thumbnails(); ?>

Plugin Source

我把它包含在一个有标题的div中,所以输出看起来更好一些。但是,如果没有任何相关产品,我需要它来隐藏div,否则它只会显示一个空白区域。

这是我正在使用的代码。

<div id="relatedproducts">
    <h1>Related Products</h1>
    <?php get_related_posts_thumbnails(); ?></div>
如果函数未返回任何相关产品,是否可以不显示此div?

谢谢

2 个回复
最合适的回答,由SO网友:Geert 整理而成

<?php
global $related_posts_thumbnails;
if ($related_posts_thumbnails->get_html()) { ?>

    <div id="relatedproducts">
        <h1>Related Products</h1>
        <?php get_related_posts_thumbnails() ?>
    </div>

<?php } ?>
快速查看get_related_posts_thumbnails() 显示它只是回显从get_html() 的方法$related_posts_thumbnails 对象通过首先检查返回的HTML,可以确保它不是空字符串(或任何假值)。

插件作者注意:选择名称get_related_posts_thumbnails() 使其回波,则输出相当不直观。其他WordPress函数使用get_ 返回数据的函数的前缀,并保留它以进行回显。例如:get_bloginfo(\'url\') vs公司bloginfo(\'url\').

SO网友:Rutwick Gangurde

看起来插件的函数响应输出,但不返回它。但是插件有一个shortcode, 你可以用它来得到你想要的东西。

<?php
$thumbs = do_shortcode(\'[related-posts-thumbnails]\');
if(strlen($thumbs) > 0)
{?
    <div id="relatedproducts">
    <h1>Related Products</h1>
        <?php echo $thumbs; ?>
    </div>
<?php }
?>
试试这个,让我知道。

结束

相关推荐

获取在Functions.php中设置的变量,并在我的Custom Post模板中回显它们

在我的函数中设置了以下函数。php文件,以允许我的自定义帖子类型“Slideshow”工作。add_action( \'the_post\', \'paginate_slide\' ); function paginate_slide( $post ) { global $pages, $multipage, $numpages; if( is_single() && get_post_type() == \'lom_s