2013-03-28 35 views
0

我想寫一些PHP,這將改變div的內容取決於顯示哪個頁面。我是一個PHP的新手,所以我敢肯定,我已經寫下了所有錯誤...WordPress的PHP如果別人改變div在不同的頁面

<?php if (is_page('home')) { ?> 
    <div class="strapline">stuff 1</div> 
<?php elseif (is_page('about')) { ?> 
    <div class="strapline">stuff 2</div> 
<?php elseif (is_page('services')) { ?> 
    <div class="strapline">stuff 3</div> 
<?php elseif (is_page('blog')) { ?> 
    <div class="strapline">stuff 4</div> 
<?php elseif (is_page('portfolio')) { ?> 
    <div class="strapline">stuff 5</div> 
<?php elseif (is_page('contact')) { ?> 
    <div class="strapline">stuff 6</div> 
<?php elseif (is_page('privacy-policy')) { ?> 
    <div class="strapline">stuff 7</div> 
<?php else (is_page('terms-and-conditions')) { ?> 
    <div class="strapline">stuff 8</div> 
<?php } ?> 

任何人都可以幫我找出這一個呢?也許它應該是一個循環?謝謝!

+0

那麼你真的有什麼問題?這不行嗎? –

+0

不,它不是......它拋出一個服務器錯誤(500)。 – krisscross90

+0

如果你需要這麼做很多,如果其他電話,我會建議使用開關來代替。即使第一個if是有效的,它也會檢查所有其他如果列表中的elses。一個開關只會運行,直到它找到第一個有效的語句和休息,這可能意味着它運行得更快。 http://www.php.net/manual/en/control-structures.switch.php – azzy81

回答

0

開關會更好:

(假設你有一個函數get_actual_page()返回實際頁面的名稱

$page = get_actual_page(); 
switch ($page){ 
    case 'home': 
     $content = 'stuff 1'; 
     break; 
    case 'about': 
     $content = 'stuff 2'; 
     break; 
    // other cases... 
} 

echo '<div class="strapline">'.$content.'</div>'; 

的代碼會更清潔,更具有可讀性和更易於維護的這種方式。 。

+0

這是工作,沒有任何錯誤,但它似乎只拿起第一個案件,並顯示它爲每一個頁面.. <?php $ page = is_page(); witch($ page_id){ case'home': $ content ='瞭解最新情況1';等... 我可能使用了錯誤的wordpress功能?有沒有人有任何想法?謝謝! – krisscross90

+0

我不知道WordPress的,你可以檢查'is_page()'返回什麼。 – Marshall

0

以下內容添加到您的function.php

function content($content) 
{ 
    if(is_page('home')){ 
     return '<div class="home">'.$content.'</div>'; 
    } else if(is_page('about')){ 
     return '<div class="about">'.$content.'</div>'; 
    } 
     return $content; 
} 

add_filter('the_content','content') 
相關問題