我正在尝试更改网站上的标题徽标,具体取决于此人所在的页面。我不知道PHP,但我发现在header.php中定义Logo的位置,我试图将其重写为动态。当我使用我的代码时,网站会中断,所以显然我做错了。
原始代码是:
<!-- Logo -->
<?php
// Get the logo
if ($ti_option['site_logo'] != '') {
$site_logo = $ti_option['site_logo'];
}
else {
$site_logo = get_template_directory_uri() . '/images/logo.png';
}
?>
<a class="logo" href="<?php echo home_url('/'); ?>">
<img src="<?php echo $site_logo; ?>" alt="<?php bloginfo('name'); ?>
-
<?php bloginfo('description'); ?>" title="<?php bloginfo('name'); ?>
-
<?php bloginfo('description'); ?>" />
</a>
<!-- End Logo -->
我要做的是根据访问者所在的页面显示不同的徽标。有三个:
- 如果页面是以下之一:(1168,1433,1428),则显示/path/logo1.jpg
- 如果页面是以下之一:(1369,1361,1365),则显示/path/logo2.jpg
- 否则,只显示/path/logo3.jpg
到目前为止,这是我能够管理的内容:
<!-- Logo -->
<?php
// Get the logo
< ? php
if ($ti_option['site_logo'] != '') {
if (is_page(array(
1168,
1433,
1428
))) :
// '$site_logo' => 'FILELOCATION.jpg',
$site_logo = $ti_option['site_logo'];));
elseif (is_page(array(
1369,
1361,
1365
))):
$site_logo = $ti_option['site_logo'];));
else:
$site_logo = $ti_option['site_logo'];
endif;
?>
} else {
$site_logo = get_template_directory_uri() . '/images/logo.png';
}
?>
<a class="logo" href="<?php echo home_url('/'); ?>">
<img src="<?php echo $site_logo; ?>" alt="<?php bloginfo('name'); ?>
-
<?php bloginfo('description'); ?>" title="<?php bloginfo('name'); ?>
-
<?php bloginfo('description'); ?>" />
</a>
<!-- End Logo -->
我认为我不能嵌套PHP开始和结束标签,所以就是这样。但是,我觉得我需要...我的代码不起作用。任何人都可以指出我要尝试的方向吗?
答案 0 :(得分:1)
我对wordpress标准并不是100%肯定,但这是一种方法。
$logo1 = "logo1.jpg";
$logo2 = "logo2.jpg";
if ($ti_option['site_logo'] != '') {
if (is_page(array( 1168, 1433, 1428))){
$site_logo = $logo1;
}else if (is_page(array( 1369, 1361, 1365))){
$site_logo = $logo2;
}else{
$site_logo = $ti_option['site_logo'];
}
?>
} else {
我发现您的代码存在两个问题:
1-无论结果如何,您最终都会这样做:$site_logo = $ti_option['site_logo'];
换句话说,您实际上从未改变徽标。
2-可能是因为你使用了点if(cond):
而不是if(cond){}
这个我不习惯使用的点,但是当你有一个好的缩进时,它会更加清晰。
可能导致代码崩溃的错误:
$site_logo = $ti_option['site_logo'];));
应该是
$site_logo = $ti_option['site_logo'];