2012-07-16 36 views
1

我有一個WordPress網站,目前它設置的基於頁面標題創建標題的代碼。標題是:內部房屋繪畫,外部房屋繪畫和商業繪畫。我想重寫標題以刪除單詞「house」。這是目前的代碼:PHP/WordPress:覆蓋在foreach循環中的page_id

<?php 
// interior_painting: 18 
// exterior_painting: 25 
// other services: 36 
$page_ids = array(18, 25, 36); 
$images = array('servicesInterior.jpg', 'servicesExterior.jpg', 'servicesOther.jpg'); 
foreach ($page_ids as $key => $page_id) { 
    $page_post = get_post($page_id); 
    $page_custom_key = 'home_page_info'; 
    $page_link = $page_post->post_name; 
    $li_class = $page_id == 36 ? 'noMargin' : ''; 
    $title = $page_id == 18 ? 'Interior Painting' : $page_post->post_title . " "; 
    $title = $page_id == 36 ? 'Commercial Projects' : $page_post->post_title . " "; 
    $title = $page_id == 25 ? 'Exterior Painting' : $page_post->post_title . " "; 


    echo '<li class="' . $li_class . '"> <a href="' . $page_link . '">'; 
    echo '<img class="alignright size-full wp-image-349" title="servicesInterior" src="/wp-content/uploads/2011/04/' . $images[$key] . '" alt="" width="200" height="95" /></a>'; 
    echo '<h2>' . $title . '</h2>'; 
    echo get_post_meta($page_id, $page_custom_key, true); 
    echo '<a class="btn-find-more" href="' . $page_post->post_name . '">FIND OUT MORE</a></li>'; 
} 

?> 

輸出是這樣的:內部房屋油畫,外部油畫,商業油畫。我如何從「室內房屋畫」中刪除「房屋」?

回答

0
$title = ucwords(trim(strtolower(str_replace('house', '', $page_post->post_title)))); 

雖然,我爲何有點好奇你不希望完全刪除標題中的單詞。

此外:別人提到使用preg_replace。這也完全可能,但最好做一個不區分大小寫的搜索:

$title = trim(preg_replace('/house/i', '', $page_post->post_title)); 
0

只需使用preg_replace('House'|| 'house','',/*Variable Page title is in*/);

0

你可以嘗試更換行:

echo '<h2>' . $title . '</h2>'; 

像這樣的東西:

if (is_page('Interior House Painting')) { echo '<h2>Interior Painting</h2>'; } 
if (is_page('Exterior House Painting')) { echo '<h2>Exterior Painting</h2>'; } 
else { echo '<h2>' . $title. '</h2>'; }