函数在定制器中使用时具有_CUSTOM_LOGO

时间:2016-05-19 作者:Jeremy

我正在尝试整合custom-logo 4.5中引入的功能,我在Customizer界面上遇到了一些问题。

我正在检查has_custom_logo 如果为false,我将提供站点名称和描述的文本版本作为后备方案。添加自定义徽标时,效果非常好。但是,当您“删除”它时,它会出现has_custom_logo 仍然返回true.

示例:

if ( function_exists( \'the_custom_logo\' ) && has_custom_logo() ) {
    the_custom_logo();
} else {
    echo \'Fallback\';
}
还有谁有过类似的运气吗?

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

你走错了路has_custom_logo() 如果没有徽标,将返回false。function_exists( \'the_custom_logo\' ) 但是,如果您使用支持此功能的Wordpress版本,则将返回true。

所以,如果你像下面这样分开你的if语句,它就会起作用。

if( function_exists( \'the_custom_logo\' ) ) {
    if(has_custom_logo()) {
        the_custom_logo();
    } else {
        echo "No logo";
    }
}

SO网友:Troy Templeman

我使用了与问题中类似的代码,使用图像作为后备,效果很好。4.5以下显示回退图像,4.5以上显示自定义徽标(如果已设置)。如果未设置自定义徽标或已将其删除,则会显示回退图像。

<?php if ( function_exists( \'the_custom_logo\' ) && has_custom_logo() ) : ?>
    <?php the_custom_logo(); ?>
<?php else : ?> 
    <h1 class="site-title"><a href="<?php echo esc_url( home_url( \'/\' ) ); ?>" rel="home" title="<?php bloginfo( \'name\' ); ?>"><img src="<?php echo get_stylesheet_directory_uri(); ?>/images/logo.png" alt="<?php bloginfo( \'name\' ); ?>" width="100" height="50" /></a></h1>
<?php endif; ?>

相关推荐

Hook to change Logout url

我用这个钩子来替换退出地址。不幸的是,这个钩子不起作用,我不明白为什么add_filter(\'logout_url\', \'my_custom_logout_url\'); function my_custom_logout_url($force_reauth, $redirect=null){ $logout_url = wp_nonce_url(site_url(\'logout.php\').\"?action=logout\", \'log-ou