删除“Private”+“:”标题不起作用

时间:2019-08-19 作者:J.BizMai

我想删除每个帖子标题的“private”前缀。我找到了过滤器here.我设法删除了“Private”一词,但当我与“:”连接时。这已经不起作用了。我检查过了$title 前的值str_replace 并且已经翻译成“:”。

Class FrontEnd{

    protected function front_end_init() {
        add_filter( \'the_title\', array( $this, \'remove_private_prefix\' ) );
    }

    public static function remove_private_prefix( $title ) {
        $title = str_replace( __( \'Private\' ) . " : ", \'\', $title);
        return $title;
    }
}
我怎样才能解决这个问题?

4 个回复
SO网友:shea

最简单的答案如下:

add_filter( \'private_title_format\', function ( $format ) {
    return \'%s\';
} );
它使用private_title_format 将标题的格式更改为文章标题,而不使用任何不必要的类或函数。

SO网友:J.BizMai

我找到了一个基于此的解决方案post

Class FrontEnd{

    protected function front_end_init() {
        add_filter( \'the_title\', array( $this, \'remove_title_prefix\' ) );
    }

    public static function remove_title_prefix( $title ) {
        $title = esc_attr($title);

        $findthese = array(
            \'#[\'  . __("Protected") . \' : ]#\',
            \'#[\' . __("Private") . \' : ]#\'
        );
        $replacewith = array(
            \'\', // What to replace "Protected:" with
            \'\' // What to replace "Private:" with
        );

        $title = preg_replace($findthese, $replacewith, $title);
        return $title;
    }
}

SO网友:J.BizMai

正如@Sally CJ所说,更好的方法是使用该功能private_title_format.所以

如果您可以设置WP_Post, 您可以使用以下代码行:

apply_filters( \'private_title_format\', "", $post );

如果您出于某种原因(如我的示例)不知道$post,可以像这样覆盖筛选器:

Class FrontEnd{

    protected function front_end_init() {
        add_filter( \'private_title_format\', array( $this, \'remove_prefix_private_post_title\' ), 10, 2 );
    }

   public function remove_prefix_private_post_title( $format, $post ){
        return \'%s\';
   }
}

SO网友:D L

请尝试删除冒号前的空格,以便“:"E;变为:"E;。或者使用像谢伊这样的高级方法。

相关推荐

Multiple category filters

我正在为客户端开发一个事件插件,我需要几个“类别过滤器”。现在我有了一个post类型的参数,我注册了该post类型和分类法,并创建了另一个分类法。在我的category metabox中,我只有第一个分类显示为我可以选择的类别。如果我在我的菜单上创建另一个帖子类型,它会像一个不同的插件菜单一样显示,其中子菜单是我的帖子类型所在的位置,我只想有一个不同的“类别过滤器”,我可以将类别添加到其中,然后在同一个插件中显示为类别元框。所以现在我有一个“Place”的帖子类型和分类法,它显示在我的插件中,通常是一个类