Intereting Posts
Как искать сообщения В ИСТОЧНИКЕ ИЛИ ИЛИ ИЛИ ИЛИ? Пагинация не работает с шаблоном пользовательской страницы Необходимость создания настраиваемого шаблона страницы для каждого языка в WPML Получение заголовков «Следующая» и «Предыдущая запись» на боковой панели? После нескольких страниц на странице появляется несколько циклов на странице добавить страницу меню в меню цикла Автоматически добавлять категорию в настраиваемый тип сообщения, используя категорию slug Проблема с Permalink Собираются ли переходные мусор? Показать новые сообщения категории в разделенных divs Свернуть содержимое Ограничить символы в разделе комментариев Имеются сообщения, относящиеся к нескольким категориям, исключая некоторые категории с главной страницы изменить верхний баннер на определенной странице Изменение размера загруженных изображений

Динамически добавлять идентификаторы в теги заголовков

Как добавить атрибут id динамически к каждому тегу заголовка на веб-сайте wordpress, используя php? Я хотел сделать так, чтобы для каждого тега заголовка (h1, h2, h3, h4, h5, h6) у меня есть уникальный идентификатор, прикрепленный так, чтобы он был следующим: <h1 id="this_is_sparta">This Is Sparta</h1>

Поэтому я могу ссылаться на него с помощью <a href="#this_is_sparta">Go to This Is Sparta</a>

Я искал решение этого в течение нескольких часов, и я не могу найти ничего, поэтому, если кто-то может помочь, все будет оценено!

Если это нужно сделать вручную, все в порядке, мне просто нужен более простой способ сделать это для клиента.

Solutions Collecting From Web of "Динамически добавлять идентификаторы в теги заголовков"

У меня была та же самая дилемма, и я нашел этот плагин: добавьте идентификаторы в теги заголовков , и он отлично подходит для сообщений. (Я никак не связан с плагином).

Чтобы заставить его работать и на страницах, мне пришлось внести изменения в код, который поясняется на этой странице поддержки: Не добавлять идентификаторы

Похоже, что разработчик неактивен и не предлагает поддержки для плагина, поэтому, если вы обнаружите некоторые проблемы, вы должны исправить их самостоятельно, к сожалению. Но плагин – прекрасная база для начала.

В этом следующем коде я удалил проверку «is_single ()», чтобы код работал как на страницах, так и на сообщениях. Кроме того, я удалил часть «лишнего» кода, чтобы он соответствовал вопросу OP.

 //Author URI: http://stephanis.info add_filter( 'the_content', 'add_ids_to_header_tags' ); function add_ids_to_header_tags( $content ) { $pattern = '#(?P<full_tag><(?P<tag_name>h\d)(?P<tag_extra>[^>]*)>(?P<tag_contents>[^<]*)</h\d>)#i'; if ( preg_match_all( $pattern, $content, $matches, PREG_SET_ORDER ) ) { $find = array(); $replace = array(); foreach( $matches as $match ) { if ( strlen( $match['tag_extra'] ) && false !== stripos( $match['tag_extra'], 'id=' ) ) { continue; } $find[] = $match['full_tag']; $id = sanitize_title( $match['tag_contents'] ); $id_attr = sprintf( ' id="%s"', $id ); $replace[] = sprintf( '<%1$s%2$s%3$s>%4$s</%1$s>', $match['tag_name'], $match['tag_extra'], $id_attr, $match['tag_contents']); } $content = str_replace( $find, $replace, $content ); } return $content; } 

В wp-includes/formatting.php есть функция, называемая sanitize_title_with_dashes, которую вы можете использовать.

 <h1 id="<?php echo sanitize_title_with_dashes( get_the_title() ); ?>"><?php the_title(); ?></h1> 

Если ваш заголовок This Is Sparta выход будет this-is-sparta .

Вы можете использовать фильтр the_content , а затем найти все теги заголовков в содержимом и добавить идентификаторы.

Для поиска заголовков в контенте вы можете использовать выражения Regex или что-то вроде simple_html_dom. Посмотрите на это