将the_title过滤器应用于帖子,但不应用于导航菜单

时间:2018-03-14 15:58:34

标签: wordpress

我想将过滤器应用于帖子类型的标题,但仅限于其单页。所以我做了这个功能:

tr

但问题是过滤器也适用于具有该类型帖子的导航菜单项。我尝试使用wp_get_associated_nav_menu_items()从导航项中排除过滤器,但这似乎不起作用。还尝试使用get_post_type()检查帖子类型,但由于菜单项在使用菜单编辑器上的帖子类型选项添加项目时响应帖子类型,因此它们始终匹配并且仍然应用过滤器。

this question给出的解决方案对我没有用。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以检查以确保仅通过与in_the_loop()布尔函数进行比较来过滤循环中的标题:

function mithc_title_filter( $title, $post_id = null ) {
    if( in_the_loop() && is_singular( 'review' ) ){
        $title = sprintf( '%1$s %2$s', $title, __( 'Review', 'stackoverflow' ) );
    }
    return $title;
}
add_filter( 'the_title', 'mithc_title_filter', 10, 2 );