2017-02-03 11 views
0

に......線125に文字列に変換することができませんでした私はポストタイプのタイトルをフィルタリングしようとしていると私はこのキャッチできる致命的なエラー:クラスはstdClassのオブジェクトはWordPress

Catchable fatal error: Object of class stdClass could not be converted to string in line 125

を得ましたここ

は、私が使用し...

add_filter('wpseo_title', 'vehicle_listing_title', 10, 1); 
function vehicle_listing_title($title) { 
    global $post; 
    if (get_post_type() == 'vehicles'){ 

     $model = get_queried_object('vehicle_model'); 
     $location = get_queried_object('vehicle_location'); 
     $title = $model . "used cars for sale in" . $location .'on'. get_bloginfo('name'); <---- this is line 125 
    } 

    return $title; 
    } 
+1

くそー、名前は 'get_queried_object'あなたは単なる文字列でそれを連結し、私が思う__toString''実装していないオブジェクトを返す必要があることを示唆しています。 'var_dump($ model、$ location)'を試してみてください。 – Chay22

答えて

0

get_queried_object()パラメータを許可しません。

これを試してみてください:

$post = get_queried_object(); 
$location = $post->post_title; 

たぶんあなたvehicle_modelvehicle_locationが次にあなたが

事前-Rカスタムのようなあなたのポストのフィールドを拡張するすべてのプラグインを使用していget_post_meta()機能を使用する必要があり、メタフィールドですフィールド?

EDIT:コメントを見て、ACFプラグインを使用します。だからあなたのコードは次のようになります。

add_filter('wpseo_title', 'vehicle_listing_title', 10, 1); 
function vehicle_listing_title($title) { 
    if (get_post_type() == 'vehicles'){ 

     $model = get_field('vehicle_model'); 
     $location = get_field('vehicle_location'); 
     $title = $model . "used cars for sale in" . $location .'on'. get_bloginfo('name'); 
    } 

    return $title; 
} 
+0

投稿名なしの「サイト名で販売された中古車」。はい、私はACFプラグインを使用しています。 –

+0

あなたは 'get_field( 'vehicle_model'、$ postId);で値を簡単に得ることができます;ドキュメントを見てください:https://www.advancedcustomfields.com/resources/get_field/ – Sysix

+0

私はすでにそれを試しました。投稿タイトルのないフィルタリングされたタイトル。私は '$ vehicle_location = get_queried_object_id( 'vehicle_location')'を試してみました。これは、760使用された車を760onのサイト名で返します。これは、必要な結果に一歩近づいているようです。 IDから名前に変更する方法はありますか? –

0

をあなたが潜在的にタイトルにこれを取得するためにprint_r()を使用することができます$場所オブジェクトの内容によってコードです。

 $title = print_r($model, true) . "used cars for sale in" . print_r($location, true) .'on'. get_bloginfo('name'); <---- this is line 125 

true

はそれをエコーではなく、結果を返す関数に指示します。

あなたのオブジェクトは、あなたがこのような何か行うことができ、その後の中からデータを取得する必要がある内部構造がある場合:あなたは、その構造を見ることができるように

$title = $model[0] . "used cars for sale in" . $location[0] .'on'. get_bloginfo('name'); <---- this is line 125 

var_dump($location); var_dump($model);意志出力オブジェクトの全内容を。 [0]内の「0」を、必要な項目のキー(または複数のキーIE $model[0][0][0])に置き換えます。

さらに、投稿オブジェクト($post)が既にあることがわかります。おそらく、あなたはその物体の中を覗き込み、モデルと位置がそこにあるかどうかを知ることができますか? var_dump($post);

+0

私はそれを試して、それはまだ同じを返します。これは私が 'print_r()' 'stdClass([term_id] => 760 [name] => london [slug] =>ロンドン[term_group] => 0 [term_taxonomy_id] => 760 [taxonomy] => vehicle_location [term1] => 760 [name] =>ロンドン[slug] =>ロンドン[description] => [parent] => 19 [count] => 0 [filter] => sitenameの 'term_group] => 0 [term_taxonomy_id] => 760 [taxonomy] => vehicle_location [description] => [parent] => 19 [count] => 0 [filter] =>未処理) –

関連する問題