WordPress的|是否可以使用钩子在帖子标题的标记之后插入标记?

时间:2018-09-05 13:47:37

标签: wordpress wordpress-theming

我正在构建一个插件,该插件需要在任何给定页面/帖子的主标题之后插入一些链接。

例如,如果我使用post_title过滤器,则会在H1 内添加标记,而不是在之后

>
function so_title_filter( $title, $id = null ) {

    if (in_the_loop()) {
        $title = $title . "<p>Custom markup!</p>";
    }

    return $title;
}
add_filter( 'the_title', 'so_title_filter', 10, 2 );

是否可以在标题的标记之后添加自定义标记

1 个答案:

答案 0 :(得分:0)

否,无法使用挂钩。如果查看the_title的源代码,您会注意到beforeafter参数上没有过滤器,只有函数get_the_title()上有过滤器。主题实现标题的方式也不一致,例如,主题可以使用the_title( '<h1>', '</h1>' );<h1><?php the_title(); ?></h1>之类的东西,因此用钩子就无法实现。

您可以使用一些JavaScript来实现

PHP(将类添加到注入的元素中)

function so_title_filter( $title, $id = null ) {

    if (in_the_loop()) {
        $title = $title . '<p class="moveme">Custom markup!</p>';
    }

    return $title;
}
add_filter( 'the_title', 'so_title_filter', 10, 2 );

JS

jQuery( document ).ready( function() {
    jQuery( '.moveme' ).each( function() {
         jQuery( this ).insertAfter( jQuery( this ).parent() );
    });
});

Codepen demo