我的if / else语句无法显示the_header_image_tag。 WordPress的

时间:2018-10-03 13:09:53

标签: php css wordpress

我正在尝试让我的if / else正常工作。 我有一个叫做WordPress的函数。而且我想显示不同的css(如果未使用或已使用)。

就像我的主题一样,它可以显示横幅,如果为空,则不显示。但是,如果已设置,它将显示图像。

据我了解,如果该函数为空或不为真,它将不会显示任何内容。 谢谢您的宝贵时间。

WordPress.org the_header_image_tag

上的功能

代码

<style type="text/css">

<?php
endif; ?>

<?php
if ( ! the_header_image_tag() )
// Also tried if ( ! function_exists('the_header_image_tag')):
// Also tried if ( the_header_image_tag() )
?>
.site-title a {
    color: #<?php
echo esc_attr($header_text_color); ?>;
    position: relative;
}
.site-description {
    color: #<?php
echo esc_attr($header_text_color); ?>;
    position: relative;
} 

<?php
else: ?>
.site-title a {
    color: #<?php
    echo esc_attr($header_text_color); ?>;
    position: absolute;
    top: 150px;
    right: 100px;               
    display: block;
    z-index: 100;
}
.site-description {
   color: #<?php
   echo esc_attr($header_text_color); ?>;
   position: absolute;
   top: 20px;               
   display: block;
   z-index: 100;
}

</style>
<?php
endif; ?>

2 个答案:

答案 0 :(得分:0)

食典委说,如果未设置,它将返回一个空字符串,因此请尝试检查该字符串。另外,您不会在if语句的末尾回显样式结束标记,所以我将其移至if-else之外。

<?php
endif; ?>

<?php
if ( the_header_image_tag() == '' ) {
// Codex say it will return an empty string if not used
// I also more like curly brackets (even if WP doesn't), but i don't think it will affect the results
?>
.site-title a {
    color: #<?php
echo esc_attr($header_text_color); ?>;
    position: relative;
}
.site-description {
    color: #<?php
echo esc_attr($header_text_color); ?>;
    position: relative;
} 

<?php } else { ?>
.site-title a {
    color: #<?php
    echo esc_attr($header_text_color); ?>;
    position: absolute;
    top: 150px;
    right: 100px;               
    display: block;
    z-index: 100;
}
.site-description {
   color: #<?php
   echo esc_attr($header_text_color); ?>;
   position: absolute;
   top: 20px;               
   display: block;
   z-index: 100;
}
// style closing tag moved outside. Your problem might be as simple as you don't echo out the closing tag in your if statement but only in the else
<?php } ?>
</style>

答案 1 :(得分:0)

通常,Wordpress中以the_开头的函数将回显字符串。因此,您可以使用<?php the_title(); ?>并将其显示出来。

如果您需要返回字符串,则大多数函数都以get_开头。

使用get_header_image_tag()应该可以在您的if语句中使用。