Catchable fatal error: Object of class stdClass could not be converted to string in line 125...... in WordPress
Catchable fatal error: Object of class stdClass could not be converted to string in line 125...... in WordPress
我正在尝试过滤掉 post 类型的标题,但我得到了这个
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;
}
根据 $location object 的内容,您可能会使用 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
告诉函数 return 结果而不是回显它。
如果你的 object 有一个你需要从内部获取数据的内部结构,那么你可以这样做:
$title = $model[0] . "used cars for sale in" . $location[0] .'on'. get_bloginfo('name'); <---- this is line 125
A var_dump($location); var_dump($model);
将输出 object 的全部内容,因此您可以看到它们的结构。只需将 [0]
中的“0”替换为您想要的项目的键(或多个键 IE $model[0][0][0]
)即可。
此外,我看到您那里已经有了 post object ($post
)。或许您可以查看 object 内部,看看模型和位置是否存在? var_dump($post);
get_queried_object()
不允许参数。
试试这个:
$post = get_queried_object();
$location = $post->post_title;
可能你的vehicle_model
和vehicle_location
是Meta-Fields,那么你必须使用get_post_meta()函数
您是否使用任何扩展您的 Post 字段的插件,例如 Advance-Custom-Fields?
编辑:看评论,你用的是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;
}
我正在尝试过滤掉 post 类型的标题,但我得到了这个
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;
}
根据 $location object 的内容,您可能会使用 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
告诉函数 return 结果而不是回显它。
如果你的 object 有一个你需要从内部获取数据的内部结构,那么你可以这样做:
$title = $model[0] . "used cars for sale in" . $location[0] .'on'. get_bloginfo('name'); <---- this is line 125
A var_dump($location); var_dump($model);
将输出 object 的全部内容,因此您可以看到它们的结构。只需将 [0]
中的“0”替换为您想要的项目的键(或多个键 IE $model[0][0][0]
)即可。
此外,我看到您那里已经有了 post object ($post
)。或许您可以查看 object 内部,看看模型和位置是否存在? var_dump($post);
get_queried_object()
不允许参数。
试试这个:
$post = get_queried_object();
$location = $post->post_title;
可能你的vehicle_model
和vehicle_location
是Meta-Fields,那么你必须使用get_post_meta()函数
您是否使用任何扩展您的 Post 字段的插件,例如 Advance-Custom-Fields?
编辑:看评论,你用的是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;
}