Я искал различные решения для StackOverflow и inte rnet, но не могу найти способ добавить тег id
к заголовку поста Wordpress h1
через мой файл функций. Я нашел интересное решение для добавления id
к любому тегу h1
к h6
в the_content
поста WordPress здесь . Но при этом используется текст от h1
до h6
, и я хочу использовать конкретный c текст, который я могу определить в функции. Также в этом решении кажется, что заголовок моего сообщения h1
находится за пределами the_content
. Когда я добавляю код, предложенный решением, в свой файл функций, он добавляет тег id
ко всем тегам h
внутри сообщения, но НЕ фактическое название поста h1
!
Поэтому любой может предложить функцию фильтра, которую я могу добавить в мой файл функций, который добавит тег id
к заголовку поста h1
(если id
для него уже не существует), чье имя я могу определить в функции?
Как я уже говорил, я смотрел на различные похожие решения и пытался их изменить (включая множество попыток с помощью Решение связано с выше), но не имели успеха после нескольких недель попыток! - поэтому любая помощь с этим будет наиболее ценной. Заранее большое спасибо за вашу помощь.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ (опубликовано 24 часа спустя). , .
ОК, я все еще пытаюсь решить эту проблему, и мне грозит крайний срок! Для объяснения:
Я нашел другой пример кода (с тем, который приведен выше), который кажется немного проще и поэтому подумал, что я смогу отредактировать эту версию, чтобы добиться добавления тега ID к сообщению название (см. новый код ниже). Я изменил A) the_content
на the_title
и B) $content
на $title
по сравнению с оригинальной версией, думая, что это, следовательно, отфильтрует заголовок сообщения, а не содержание сообщения - но, попробовав это, все равно не радуйтесь! Кто-нибудь сможет взглянуть на приведенный ниже код и предложить способ сделать так, чтобы он добавлял ID-тег к заголовку сообщения <h1>
: (любая помощь в решении этой проблемы будет чрезвычайно полезна!)
function auto_id_headings( $title ) {
$title = 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];
}, $title);
return $title;
}
add_filter( 'the_title', 'auto_id_headings' );