2017-02-15 3 views
1

私は次のことを達成しようとしています。クエリされたオブジェクトからタクソノミの用語名を取得する方法

これまで

私のコード..

add_filter('wpseo_title', 'vehicle_listing_title'); 
function vehicle_listing_title($title) 
{ 
    if (get_post_type() == 'vehicles') 
    { 
    $location = get_the_terms($post->ID, 'vehicle_location'); 
    $model = get_the_terms($post->ID, 'vehicle_model'); 
    $title = $model . 'used cars for sale in' . $location .'on'. get_bloginfo('name'); 
    } 
    return $title; 
} 
  1. $location & $modelでこのコードの結果は以下のterm_id =>,name=>,slug=>,term_group=>,etcを含む対象となるので、私はそれのname一部を取得したいです。
    どうすればよいですか?

  2. 照会されたタクソノミーに投稿が割り当てられていない場合でも、変更された$titleがまだ返されるようにするにはどうすればよいですか?

+0

オブジェクトからプロパティを取得するには、$ object-> propertyを使用します。あなたの場合は '$ location-> name'です。 – RST

+0

大丈夫ですが、コードのどこに置いていますか?ポイント2で言おうとしているのは、上のコードは車がリストされているときだけ有効です。まだコードがない場合でもコードを有効にしたい。私はそれが理にかなったことを願う –

答えて

0
はこれにあなたのコードを変更

add_filter('wpseo_title', 'vehicle_listing_title'); 

function vehicle_listing_title($title) 
{ 
    if (get_post_type() == 'vehicles') 
    { 
    $location = get_the_terms($post->ID, 'vehicle_location'); 
    $model = get_the_terms($post->ID, 'vehicle_model'); 
    $title = ''; 

    if($model && $model[0]) $title .= $model[0]->name . ' used'; 
    else $title .= 'Used'; 

    $title .= ' cars for sale'; 

    if($location && $location[0]) $title .= ' in ' . $location[0]->name; 

    $title .= ' on ' . get_bloginfo('name'); 

    return $title; 
    } 

    return $title; 
} 

基本的には、用語の配列は、モデルと場所について得ることができるかどうかをチェックするためにIFのを使用してタイトルを構築する必要があります。また、wp_terms()は単語配列の配列を返します。なぜなら、[0]インデックスを使用して結果の最初の要素を取得してから、['name']インデックスを連鎖して用語の名前を取得する必要があるのはなぜですか。

+0

ドキュメントによると、 'get_the_terms'はオブジェクトの配列を返します。これは '['name']'を使うことができないことを意味します。 ' - > name'を使う必要があります。 – RST

+0

さて、試しました。それでも動作しません。コードは '致命的なエラー:function.phpの配列としてstdClass型のオブジェクトを使用できません。 ' –

+0

ああ、私は編集したコードをチェックしませんでした。それは今働く。どうもありがとう。これは私にポイント2を残す。だから何が起こるのかは、ポストタイプに「何も見つかりません」と表示されていても、以前のタイトル設定がまだ表示されていることです。私はあなたのコードが「何も見つからない」ときでも動作するようにしたい。これは可能ですか?またはそれはちょうどそれがあると思われる方法です。 –

関連する問題