post的post_type过滤器不排除页面

时间:2015-12-07 15:10:03

标签: php wordpress

我在Wordpress中遇到以下问题。我在function.php中有这个代码,它应该在Yoast SEO标题的前端发布帖子标题。代码有效,但它也会对页面产生影响。

  function set_my_seo_title($title, $id)

{
    global $post;
    $seo_title=get_post_meta($id, '_yoast_wpseo_title', true);         
    return ((!empty($seo_title)&&$post->post_type=='post') ? $seo_title : $title);
}

add_filter('the_title', 'set_my_seo_title', 15, 2); 

问题在于条件post_type=='post'。看起来Wordpress中有一些错误,但可能是我做错了。

重要提示:我必须承认我不是好开发人员。此代码来自其他问题。如果您知道此解决方案,请发布您的完整代码变体。先感谢您。

1 个答案:

答案 0 :(得分:0)

您可以尝试get_post_type()而不是......

function set_my_seo_title( $title, $id ) {
    $seo_title = get_post_meta( $id, '_yoast_wpseo_title', true );
    return ( ( ! empty( $seo_title ) && get_post_type( $id ) == 'post' ) ? $seo_title : $title );
}
add_filter( 'the_title', 'set_my_seo_title', 15, 2 );