2014-03-26 57 views
0

我試圖更改我的網站上的標題徽標,具體取決於個人所在的頁面。我不知道PHP,但是我發現Logo在header.php中定義的位置,並且試圖將其重寫爲動態。當我使用我的代碼時,該網站中斷,所以顯然我做錯了什麼。更改基於頁面的徽標(WordPress,PHP)

原始代碼是:

<!-- 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 { 

我看到2個問題與您的代碼:

1-不管結果如何,你最終這樣做:$site_logo = $ti_option['site_logo'];

換句話說,你永遠不會真正改變的標誌。

2-可能是因爲你正在使用點if(cond):而不是if(cond){},我不習慣使用它,但是當你有一個好的縮進時它更清晰。

錯誤很可能使你的代碼崩潰:

$site_logo = $ti_option['site_logo'];)); 

應該

$site_logo = $ti_option['site_logo']; 
+0

就是這樣!有用!看起來你最後錯過了一個「}」,但那只是我所需要的。現在它工作了!我最瘋狂的夢想成真了。謝謝! – user3462415