Intereting Posts
Изображения в медиа-библиотеке внезапно исчезли Перемещенный блог – галереи не работают Создать страницу загрузки из ссылки с опцией публикации CPT, пользовательская роль пользователя и проблема с менеджером пользователя Проверьте тип загружаемого типа WordPress для нескольких загрузок Скрытие по умолчанию определенного статуса сообщения в бэкэндовом списке? Есть ли ошибка в get_the_tag_list ()? Локализация работает, но по-прежнему получает «Этот плагин неправильно подготовлен для локализации» msg в каталоге URL-адрес Remap от Относительно Абсолютного Данные реформата внутри вложенного массива URL, который ссылается конкретно на мобильную версию моего сайта? Скрыть подменю wordpress? Плагин разработки для просмотра и управления запланированными заданиями wordpress cron? Предотвращение переименования загружаемых носителей Добавить сортировку столбца для всех типов сообщений

Как изменить атрибут title, возвращаемый comments_popup_link ()?

Я могу изменить ярлык комментариев, изменив комментарий (ы) из параметра следующей функции: comments_popup_link('No Comments;', '1 Comment;', '% Comments;'); Но, кажется, что атрибут title возвращается из основных модулей. Предложите мне изменить атрибут title без редактирования основных модулей.

Solutions Collecting From Web of "Как изменить атрибут title, возвращаемый comments_popup_link ()?"

Если вы посмотрите на функцию comments_popup_link() вы увидите следующий код в конце:

 $title = the_title_attribute( array('echo' => 0 ) ); echo apply_filters( 'comments_popup_link_attributes', '' ); echo ' title="' . esc_attr( sprintf( __('Comment on %s'), $title ) ) . '">'; comments_number( $zero, $one, $more ); echo '</a>'; // last line 

Обратите внимание на вызов функции __() , функции перевода. Мы можем фильтровать 'gettext' чтобы изменить результат. Поскольку мы не хотим запускать наш фильтр при каждом переводе – это было бы слишком медленно – мы запускаем фильтр при вызове hook_ 'comments_popup_link_attributes' :

 add_filter( 'comments_popup_link_attributes', 't5_cclta_init' ); function t5_cclta_init( $attrs ) { add_filter( 'gettext', 't5_cclta_change_title', 10, 3 ); return $attrs; } 

Теперь нам нужна только реальная функция фильтра:

 function t5_cclta_change_title( $translated, $text, $domain ) { remove_filter( current_filter(), __FUNCTION__, 10 ); if ( 'default' === $domain && 'Comment on %s' === $text ) return 'Talk about %s'; return $translated; } 

И теперь атрибут title говорит: « Разговор о заголовке сообщения» .

Как они сказали, он жестко закодирован в ядро ​​WP, и лучше всего не вмешиваться в работу ядра. Однако название находится в <span class="screen-reader-text">Post Title</span> просто используйте CSS, чтобы скрыть его.

.screen-reader-text{ display: none; }