根据页面更改徽标(Wordpress,PHP)

时间:2014-03-26 03:36:33

标签: php wordpress graphical-logo

我正在尝试更改网站上的标题徽标,具体取决于此人所在的页面。我不知道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开始和结束标签,所以就是这样。但是,我觉得我需要...我的代码不起作用。任何人都可以指出我要尝试的方向吗?

1 个答案:

答案 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'];