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



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

如果我使用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 );

有没有办法在标题标记添加自定义标记?

不,使用钩子是不可能的。如果您查看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() );
});
});

代码笔演示

最新更新