Intereting Posts
Noindex, Nofollow в header.php темы? Как WordPress соединяет сайты и таблицу wp_users? Можно ли удалить «стандартный» почтовый формат? Как передать параметры orderby в $ wpdb-> prepare ()? Как использовать пользовательские действия, созданные внутри одного плагина в другом Что я могу использовать для небольшого текста при конвертации в WordPress? Ограничить пользовательский тип сообщения появлением с? Post_types = Что не хватает в этих wp_query и meta_query Могу ли я создать цикл с несколькими типами сообщений и указать разные $ args для каждого типа сообщения? wp_editor удаляет абзац из пользовательского мета-поля Как скрыть tinymce в окне редактирования определенной страницы В Macbook мои постоянные ссылки с почтовым именем не работают. Ошибка возврата 404 Получать уведомление по электронной почте, когда на сайте wordpress возникает фатальная ошибка? Добавление элементов в меню Как создать поле автора так и добавить после каждого сообщения?

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

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

Если вы посмотрите на функцию 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; }