不同页面的不同徽标

时间:2018-10-02 01:48:35

标签: php wordpress

尝试使用下面的代码段显示页面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); ?>" >

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>