1

WordPress サイトがあり、現在、ページ タイトルに基づいてタイトルを作成するように設定されたコードがあります。タイトルは、家の内装塗装、家の外装塗装、商業塗装です。タイトルを上書きして「家」という単語を削除したいと思います。これは現在のコードです:

<?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>';
}

?>

アウトプットはこれです:インテリアハウスペイント、エクステリアペイント、コマーシャルペイント。「インテリア ハウス ペインティング」から「ハウス」を削除するにはどうすればよいですか?

4

3 に答える 3

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>'; }
于 2012-07-16T21:22:15.393 に答える
0

使うだけpreg_replace('House'|| 'house','',/*Variable Page title is in*/);

于 2012-07-16T21:09:47.670 に答える
0
$title = ucwords(trim(strtolower(str_replace('house', '', $page_post->post_title))));

ただし、タイトルから単語を完全に削除することを好まない理由については、少し興味があります.

追加:他の誰かが preg_replace を使用して言及しました。それも完全に可能ですが、大文字と小文字を区別しない検索を行うのが最善です:

$title = trim(preg_replace('/house/i', '', $page_post->post_title));
于 2012-07-16T21:52:27.810 に答える