【问题标题】:Adding an ID tag to a post title (Wordpress)将 ID 标签添加到帖子标题 (Wordpress)
【发布时间】:2020-05-31 11:11:22
【问题描述】:

一段时间以来,我一直在尝试通过在子主题的 functions.php 文件中放置一个函数来为帖子标题添加 ID 标记。

我已经尝试了下面的代码,该代码适用于在帖子内容中包含任何没有 ID 的 h1 到 h6 的 ID(并留下任何单独的 ID) - 但我找不到方法为实际显示的帖子标题添加 ID?

function auto_id_headings( $content ) {

    $content = preg_replace_callback( '/(\<h[1-6](.*?))\>(.*)(<\/h[1-6]>)/i', function( $matches ) {
        if ( ! stripos( $matches[0], 'id=' ) ) :
            $matches[0] = $matches[1] . $matches[2] . ' id="' . sanitize_title( $matches[3] ) . '">' . $matches[3] . $matches[4];
        endif;
        return $matches[0];
    }, $content );

    return $content;

}
add_filter( 'the_content', 'auto_id_headings' );

我认为这就像将代码的“add_filter”部分中的the_content 更改为the_title 一样简单,但这并没有奏效!仅供参考,我正在尝试执行此操作的页面在这里:https://www.futureproofpromotions.com/reaction-form/

有人可以帮忙吗?

我已经包含了该页面的 chrome 开发人员工具的屏幕截图,解释了我在下面尝试实现的目标:

【问题讨论】:

    标签: php wordpress function


    【解决方案1】:

    挂钩 the_content 返回所有帖子内容(包括 HTML),但挂钩 the_title 从 post_title 字段(wp_post 表)返回您的值。 因此,如果您想将标签 id 添加到 id 或 class DOM 元素,您需要在子主题中进行更改: 1. 在您的子主题中复制 single.php(或您需要更改的其他页面模板) 2.用the_title()函数找到位置 3.改变h1类(添加你的功能)

    【讨论】:

    • 如果我使用 the_title 而不是 the_content 我怎样才能让它返回 html 元素(h1 id=' ' class=' ' style=' ' 等),因为那是我的部分想要过滤(这甚至可能吗?) - 将过滤器放在子主题的functions.php中肯定会更好,因为将single.php复制到子主题对未来的主题更新不利? - 请告知
    • 如果您已经制作了子主题,那么最好的解决方案是在子主题中的single.php进行更改,我之前说过..如果您使用the_content,您只能获取标题的文本内容;在 single.php 子主题进行更改后也更新父主题是安全的
    • the_title 挂钩返回您在 wp-admin 的标题字段中输入的唯一文本
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多