Модератор
Юрій
(@yube)
Есть же наверное способ научить этот кусок выглядеть по-другому?
Есть. В link-template.php, где Вы нашли вышеприведенный фрагмент кода, сразу за ним идет ответ на Ваш вопрос:
/**
* Filters the navigation markup template.
*
* Note: The filtered template HTML must contain specifiers for the navigation
* class (%1$s), the screen-reader-text value (%2$s), and placement of the
* navigation links (%3$s):
*
* <nav class="navigation %1$s" role="navigation">
* <h2 class="screen-reader-text">%2$s</h2>
* <div class="nav-links">%3$s</div>
* </nav>
*
* @since 4.4.0
*
* @param string $template The default template.
* @param string $class The class passed by the calling function.
* @return string Navigation template.
*/
$template = apply_filters( 'navigation_markup_template', $template, $class );
Вешаете на хук ‘navigation_markup_template’ свой обработчик, отдающий генератору альтернативный шаблон, и всё.
Только не понятно, зачем вообще это делать?
Только не понятно, зачем вообще это делать?
Например, чтобы убрать заголовок:
function dco_navigation_markup_template() {
return '
<nav class="navigation %1$s" role="navigation">
<div class="nav-links">%3$s</div>
</nav>';
}
add_filter('navigation_markup_template', 'dco_navigation_markup_template');
Да, в общем-то для подобных задач.
Денис, то есть «при встрече данного куска кода, он отныне будет проигнорирован»?
не так — это фильтр в functions.php вашей темы.
он всегда работает и фильтрует то, что там движок генерирует — движок добавляет этот дурацкий H2, а этот фильтр его удаляет.
Модератор
Юрій
(@yube)
этот дурацкий H2
Простите, но он не дурацкий. Он предназначен для программ озвучки экрана, созданных для людей с особыми потребностями и ограниченными возможностями.
Простите, но он не дурацкий. Он предназначен для программ озвучки экрана, созданных для людей с особыми потребностями и ограниченными возможностями.
я по другому выражусь — зачем было H2 то использовать? в других местах движок заголовки H* для screen-reader-text не использует.
Денис, спасибо. Я так понял, что этот фильтр для решения конкретной задачи по данному заголовку, либо по элементам данного типа. Но вопрос был о поиске более обобщённого решения — отлова и подмены блоков кода с теми или иными признаками — «начинается с …, оканчивается на …». При помощи регулярных ли выражений, встроенных ли инструментов Вордпресса.
Есть такая возможность?
отлова и подмены блоков кода с теми или иными признаками — «начинается с …, оканчивается на …». При помощи регулярных ли выражений, встроенных ли инструментов Вордпресса.
Есть такая возможность?
Ищете фильтр для нужного куска и переопределяете как требуется.
Ну или, видимо, использовать всякие плагины, типа Real-Time Find and Replace.
Но вопрос был о поиске более обобщённого решения — отлова и подмены блоков кода с теми или иными признаками — «начинается с …, оканчивается на …».
если речь про контент, то парсинг на the_content. если про функции движка — ищите нужные фильтры.
а если вам нужно все отпарсить и контент и движок и плагины — то без ob_start не обойтись.
Друзяки, большое спасибо! Много узнал, ясно — где копать. Что до непосредственной задачи, то вот подошедшее решение:
add_filter('navigation_markup_template', 'my_navigation_template', 10, 2 );
function my_navigation_template( $template, $class ){
return '
<nav class="navigation %1$s" role="navigation">
<div class="row clearfix">
<div class="column full" title="%2$s">
<div class="nav-links">%3$s</div>
</div>
</div>
</nav>
';
}
-
Ответ изменён 7 лет, 8 месяцев назад пользователем carbonady.
зачем было H2 то использовать?
Чтобы обеспечить корректную структуру документа в соответствии со стандартами, см. обсуждение в тикете.
в других местах движок заголовки H* для screen-reader-text не использует.
В других местах этот текст не находится внутри тега <nav>
.
Чтобы обеспечить корректную структуру документа в соответствии со стандартами, см. обсуждение в тикете.
что значит корректную? этот стандарт все еще черновик, разве не так? без этого H2 вдруг блок сломается?
из-за этого H2 половина веб-мастеров вообще сносит screen-reader-text, ибо SEO-мифы по поводу заголовков неубиваемы.
этот стандарт все еще черновик, разве не так?
Черновик — та конкретная страница справочника, где требования к заголовкам изложены простым языком.
WCAG 2.0 — вполне себе утверждённый стандарт, которого WordPress придерживается, чтобы быть доступным для как можно большего числа людей.