尝试使用下面的代码段显示页面ID 1111的其他徽标。但它在每个页面上都显示两个徽标。不知道我缺少什么或做错了什么。该代码片段位于我的header.php主题文件Wordpress中。
<a title="<?php echo esc_attr(get_bloginfo('name')); ?>" href="<?php echo esc_url(home_url()); ?>">
<img src="<?php echo esc_url($log_url); ?>" alt="<?php echo esc_attr(get_bloginfo('name')); ?>" width="<?php echo sh_set( $logo_size, 0); ?>" height="<?php echo sh_set( $logo_size, 1); ?>" >
<?php if (is_page( 1111 )) ?>
<img src="https://teamambrose.realtor/wp-content/uploads/2018/04/favicon.ico.png" alt="<?php echo esc_attr(get_bloginfo('name')); ?>" width="<?php echo sh_set( $logo_size, 0); ?>" height="<?php echo sh_set( $logo_size, 1); ?>" >
</a>
这就是我在上面添加的内容,希望仅在第1111页上显示第二个图像URL。
<?php if (is_page( 1111 )) ?>
<img src="https://teamambrose.realtor/wp-content/uploads/2018/04/favicon.ico.png" alt="<?php echo esc_attr(get_bloginfo('name')); ?>" width="<?php echo sh_set( $logo_size, 0); ?>" height="<?php echo sh_set( $logo_size, 1); ?>" >
答案 0 :(得分:1)
在每个页面上同时显示两个徽标的原因是因为您指定了if条件,但是在关闭php标签之前却什么也没做。
因此,将多余的徽标html视为已添加了另一行HTML代码,这导致该HTML代码显示为已添加的任何其他常规HTML元素。
您应该在if语句后面添加:
,以表明if语句之后的行被分组在该特定的if语句下。
例如
<?php if ( is_page ( 1111 ) ) : ?>
<!-- This will only be printed when page id is 1111. -->
<? endif; ?>
您还必须确保结束if语句,否则if语句下面的所有代码都将使用if条件进行处理。
如果要实现的是在1111页以外的页面上显示徽标A,而在1111页上仅显示徽标B,则应该这样做。
<a title="<?php echo esc_attr(get_bloginfo('name')); ?>" href="<?php echo esc_url(home_url()); ?>">
<?php if ( is_page( 1111 ) ) : ?>
<img src="https://teamambrose.realtor/wp-content/uploads/2018/04/favicon.ico.png" alt="<?php echo esc_attr(get_bloginfo('name')); ?>" width="<?php echo sh_set( $logo_size, 0); ?>" height="<?php echo sh_set( $logo_size, 1); ?>" >
<?php else : ?>
<img src="<?php echo esc_url($log_url); ?>" alt="<?php echo esc_attr(get_bloginfo('name')); ?>" width="<?php echo sh_set( $logo_size, 0); ?>" height="<?php echo sh_set( $logo_size, 1); ?>" >
<?php endif; ?>
</a>