Добавьте атрибут id к элементу h1 в посте WordPress.

Вопрос или проблема

Отображение элемента h1 в wordpress посте по умолчанию выглядит так:

<h1 class="entry-title"> XYZ </h1>

Я хочу добавить атрибут id к элементу h1 со значением заголовка поста. Результат должен выглядеть следующим образом

<h1 id="XYZ" class="entry-title"> XYZ </h1>

Я уже просматривал множество постов здесь, но не смог найти ответа на свой вопрос. Разве не должно быть простого фильтра для functions.php, чтобы переопределить отображение элемента h1?

Вы должны использовать редактор кода. Будьте осторожны, не пишите часть с заголовком, HTML тег и тег body. Синтаксис будет следующим:

<h1 id="XYZ">XYZ</h1>

вы можете достичь этого, добавив фильтр, чтобы изменить вывод заголовка поста в wordpress

Когда фильтр включен, он проверяет, является ли текущая страница одиночным постом is_singular('post'). Если да, он получает заголовок поста, санитизирует его и добавляет как атрибут id к элементу <h1> вместе с существующим классом заголовка. Затем он возвращает измененный заголовок

Добавьте следующий код в файл functions.php вашей темы

function add_id_to_post_title_h1( $title, $id = null ) {
    if ( is_singular('post') ) { // Проверяет, является ли это одиночным постом
        $post = get_post($id);
        $title="<h1 id="" . esc_attr( sanitize_title( $post->post_title ) ) . '" class="entry-title">' . $title . '</h1>';
    }
    return $title;
}
add_filter( 'the_title', 'add_id_to_post_title_h1', 10, 2 );

.

Ответ или решение

Для решения задачи по добавлению атрибута id к элементу <h1> заголовка в постах WordPress, следуйте приведённым ниже рекомендациям.

Шаги по добавлению атрибута id к заголовку <h1> в WordPress

Проблема

По умолчанию, элемент <h1> заголовка поста в WordPress отображается следующим образом:

<h1 class="entry-title">XYZ</h1>

Требуется добавить атрибут id с значением, совпадающим с заголовком поста, чтобы итоговый код выглядел так:

<h1 id="XYZ" class="entry-title">XYZ</h1>

Решение

1. Изменение файла functions.php

Для достижения этой цели, мы можем воспользоваться системой фильтров WordPress. Создадим фильтр в файле вашей темы functions.php, который изменит вывод заголовка поста.

Код:
function add_id_to_post_title_h1( $title, $id = null ) {
    if ( is_singular('post') ) { // Проверяем, если это отдельный пост
        $post = get_post($id);
        $sanitized_title = sanitize_title($post->post_title);
        $title = '<h1 id="' . esc_attr($sanitized_title) . '" class="entry-title">' . $title . '</h1>';
    }
    return $title;
}
add_filter( 'the_title', 'add_id_to_post_title_h1', 10, 2 );

2. Пояснение кода

  • is_singular('post'): эта функция проверяет, если текущая страница — это отдельный пост.

  • get_post($id): возвращает объект текущего поста, используя его ID.

  • sanitize_title($post->post_title): эта функция обеспечивает корректное форматирование заголовка, удаляя недопустимые символы, чтобы он мог быть безопасно использован в качестве атрибута id.

  • esc_attr(): экранирует значение атрибута id, защищая от потенциальных уязвимостей безопасности.

SEO и безопасность

Добавление уникального атрибута id может улучшить структуру HTML, что полезно для SEO, так как делает контент более доступным для индексации и семантического анализа. Обратите особое внимание на использование функций sanitize_title() и esc_attr(), которые позволяют избежать XSS-атак и других уязвимостей.

Заключение

Добавление атрибута id к заголовку <h1> поста в WordPress — это простая задача, которая реализуется с использованием возможностей системы фильтров. Это улучшит как функциональность, так и структуру вашего сайта, повышая его SEO-квалификации. Внесённые изменения следует тщательно тестировать, чтобы убедиться в их корректной работе на страницах блога.

Оцените материал
Добавить комментарий

Капча загружается...