0

这是我得到的代码。

<?php
function category_image () {
    if (function_exists('z_taxonomy_image_url')) {
        foreach (get_the_category() as $cat) :
        ?>
            <a href="<?php echo get_category_link($cat->term_id); ?>" alt="<?php echo $cat->cat_name; ?>"><img src="<?php echo z_taxonomy_image_url($cat->term_id); ?>" /></a>
        <?
        endforeach;
    }
}
?>

所以我想让IF z_taxonomy_image_url为空,不要运行代码。现在它正在显示图像是否有图像,因为该功能始终存在。

谢谢您的帮助!

4

4 回答 4

2

只需if(!z_taxonomy_image_url($cat->term_id)) continue;在 echo 之前在代码中添加一个。像这样的东西:

<?php
function category_image () {
    if (function_exists('z_taxonomy_image_url')) {
        foreach (get_the_category() as $cat) :
        if(!z_taxonomy_image_url($cat->term_id)) continue;
        ?>
            <a href="<?php echo get_category_link($cat->term_id); ?>" alt="<?php echo $cat->cat_name; ?>"><img src="<?php echo z_taxonomy_image_url($cat->term_id); ?>" /></a>
        <?
        endforeach;
    }
}
?>
于 2012-08-16T20:01:42.153 回答
1

这是我第一次尝试在这里帮助某人。:-) 如果你想检查函数“z_taxonomy_image_url()”是否返回一个空字符串,你可以按照我在这里的说明进行操作。您还可以使用 strlen() 函数来计算字符数。

我希望它有所帮助。:-)

<?
function category_image () {
    if (z_taxonomy_image_url() = "") {
        $output '';
        foreach (get_the_category() as $cat){
            $ouput += '<a href="'.get_category_link($cat->term_id).'" alt="'.$cat->cat_name.'"><img src="'.z_taxonomy_image_url($cat->term_id).'" /></a>';
        }
        echo $output;
    }
}
?>
于 2012-08-16T19:49:55.580 回答
1

您需要检查函数是否存在,并且如果应用它不会给出空白字符串 - 就像这样

<?php
function category_image () {
    if (function_exists('z_taxonomy_image_url') && trim(z_taxonomy_image_url($cat->term_id)) !="") {
        foreach (get_the_category() as $cat) :
        ?>
            <a href="<?php echo get_category_link($cat->term_id); ?>" alt="<?php echo $cat->cat_name; ?>"><img src="<?php echo z_taxonomy_image_url($cat->term_id); ?>" /></a>
        <?
        endforeach;
    }
}
?>
于 2012-08-16T19:40:50.197 回答
0

据我所知,您只是在检查函数是否存在,您是要验证函数是否存在然后运行循环,还是您实际上想要运行“z_taxonomy_image_url”函数并根据结果函数提供启动循环?

于 2012-08-16T19:39:06.337 回答