Intereting Posts
Отсутствует аргумент 2 при передаче аргументов add_action Почему мой код не сохраняет пользовательские поля в быстром редактировании? Не удалять мои сообщения Неправильное имя пользователя и пароль при установке темы Пользовательский ходок для создания меню со встроенными раскрывающимися панелями Начальная страница стиля магазина с несколькими категориями / петлями и без дубликатов сообщений Объединить команды WPCLI для установки и активации плагинов? get_term_children не возвращает массив дочерних терминов wp добавить встроенный стиль в цикл esc_attr () правильно и использовать добавить миниатюру youtube в индекс и single.php добавить видео Как обрабатывать большое количество изображений в сообщении? Отправить письмо только по проекту Получение фильма и сериала на странице актера Использовать крючки для ограничения одного комментария на пользователя за сообщение – скрыть форму, если вы уже прокомментировали

Как манипулировать выводами тегов WordPress

возьмите the_category() в качестве примера:

Вот вывод функции category в цепочке wordpress:

  <ul class="post-categories"> <li> <a href="http://example.com/category/another-category/" rel="category tag"> Another Category </a> </li> <li> <a href="http://example.com/category/uncategorized/" rel="category tag"> Uncategorized </a> </li> </ul> 

поэтому нам нужен способ добавления атрибутов, таких как некоторые другие классы, атрибуты данных и … в список, чтобы он выводил что-то вроде этого:

 <ul id="drop1" class="f-dropdown" data-dropdown-content aria-hidden="true" tabindex="-1"> <li> <a href="http://example.com/category/another-category/" rel="category tag"> Another Category </a> </li> <li> <a href="http://example.com/category/uncategorized/" rel="category tag"> Uncategorized </a> </li> </ul> 

Для большого количества тегов шаблона WordPress, включая the_categories() вы не можете изменить вывод HTML. Вместо этого вы можете использовать что-то вроде get_the_categories() и get_the_categories() результаты для создания собственного HTML.

 <ul id="whatever" data-attribute="you" class="want"> <?php $categories = get_the_category(); if ( ! empty( $categories ) ) : foreach( $categories as $category ) : ?> <li><a href="<?php echo esc_url( get_category_link( $category->term_id ) ); ?>" alt="<?php echo esc_attr( sprintf( __( 'View all posts in %s', 'textdomain' ), $category->name ) ); ?>"><?php echo esc_html( $category->name ); ?></a></li> <?php endforeach; endif; ?> </ul> 

В приведенной выше версии используются некоторые стандартные методы WP для очистки вывода каждого отпечатанного бита (esc_url, esc_html …). Более простой, если потенциально рискованный метод мог бы выглядеть примерно так в пределах foreach (в зависимости от вашей постоянной структуры):

 echo '<li><a href="/' . $category->taxonomy . '/' . $category->category_nicename. '">' . $category->cat_name . '</a></li>'; 

Вот как мне удалось обработать вывод тега шаблона the_category ().

functions.php:

 function add_post_category_list_attrs($the_list) { $list_id = "post-categories-id"; $category_title = __("Categories"); $list_trigger = sprintf('<a href="#" data-dropdown="%s" aria-controls="%s" aria-expanded="false" class="cat-list-trigger">%s</a>', $list_id, $list_id, $category_title); $the_list = substr_replace($the_list, $list_trigger, 0 ,0); $the_list = str_replace('<ul class="post-categories">', sprintf('<ul class="f-dropdown" id="%s" data-dropdown-content aria-hidden="true" tabindex="-1">', $list_id), $the_list); return $the_list; } if( ! is_admin() ){ add_filter('the_category', 'add_post_category_list_attrs'); }