用于在_title()之后添加自定义内容的WP挂钩

时间:2021-08-11 作者:Álvaro Franz

我想在页面或帖子标题后显示自定义HTML片段。

任何遵循WP指南的主题都将使用the_title(). 例如TwentyTwentyOne WP theme 具体如下:

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

    <header class="entry-header alignwide">
        <?php the_title( \'<h1 class="entry-title">\', \'</h1>\' ); ?>
        <?php twenty_twenty_one_post_thumbnail(); ?>
    </header>

...
所以,我的第一次尝试是the_title 滤器

function filter_the_title( $title ) {
    return $title . \'<h2>Whatever</h2>\';
}
add_filter( \'the_title\', \'My\\Namespace\\filter_the_title\' );
但这会过滤标题文本本身,而不是整个输出,因此我的自定义HTML将位于<h1> 标签

之后如何添加自定义内容the_title() 输出,不接触主题文件(应作为任何标准WP主题的插件)。

1 个回复
SO网友:user3135691

你需要介绍你自己的钩子(我就是这么做的)。我在以下代码段中添加了一个自定义挂钩:

<header class="entry-header alignwide">
    <?php the_title( \'<h1 class="entry-title">\', \'</h1>\' ); ?>
    <?php do_action(\'custom_after_title_hook\'); ?>
    <?php twenty_twenty_one_post_thumbnail(); ?>
</header>
要使其正常工作,您需要:

访问标题。php或在子主题中覆盖它

<?php

    function custom_after_title_hook(){

         $some_var = \'<span>some text after title</span>\';

         return $some_var;
    }
    add_action(\'my_custom_action\', \'custom_after_title_hook\');

?>
您也可以将其添加到插件中,但需要使用“template\\u include”。

相关推荐

OOP development and hooks

我目前正在为Wordpress编写我的第一个OOP插件。为了帮助我找到一点结构,a boiler plate 这为我奠定了基础。在里面Main.php 有一种方法可以为管理员加载JS和CSS资产:/** * Register all of the hooks related to the admin area functionality * of the plugin. * * @since 0.1.0 * @access private