-2

我正在开发一个自定义插件,它需要在不使用页面模板的情况下动态更改帖子标题(而不是头部的“标题”标签)。

我希望插件的最终用户能够使用他们自己的主题模板,这些模板已经输出了标题,通常在 h1 标签中,但我不知道在哪里以及如何确定,因为它不是我的主题。

我只需要更改前端的输出,而不是数据库中的输出。我想根据 url 的查询字符串是否匹配某些值,或者前端用户是否登录来更改它。我知道如何从自定义模板执行此操作,但我想从用户已经选择的模板执行此操作。

我注意到,如果我过滤 the_title(),它会在管理仪表板和前端导航菜单中的任何地方更改它,这是我不想要的,我只想更改它在用户页面模板中的输出位置(通常在 h1 标签中).... 有没有人对如何解决这个问题有任何建议?

4

1 回答 1

0

你可以使用_title过滤器,它只对前端有影响,这不会改变数据库中的记录。您的代码将是这样的: add_filter( 'the_title', 'add_text_to_post_title' );

function add_text_to_page_title( $title ) {
    if( is_post() )
        $title = 'Your text: '. $title;

    return $title;
}
于 2019-08-11T15:26:32.100 回答