Убираем всплывающий текст категорий wordpress

  Александр Маврин   5 комментариев

wordpressВсем привет. Если вы ведете блог на WordPress, то наверняка заметили, что пр и наведении курсора на рубрику, или категорию, как вам удобно, то появляется всплывающий title, что-то типа: «Посмотреть все записи в рубрике..» А если вы еще в каждой рубрике добавите описание (админка: Записи — Рубрики), то весь этот текст будет отображаться при наведении курсора на рубрику. Это не совсем удобно, особенно если ваше описание содержит большой текст. Смотрится это примерно так:

Всплывающий текст категорий wordpress

Решения этой маленькой проблемы на самом деле два. Начнем с первого. За вывод этих всплывающих сообщений в рубриках отвечает файл под названием category-template.php, который принадлежит к самому движку и находится в папке wp-includes. Для того, что бы разобраться что к чему, нам нужно найти кусок этого кода:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function wp_list_categories( $args = '' ) {
	$defaults = array(
		'show_option_all' => '', 'show_option_none' => __('No categories'),
		'orderby' => 'name', 'order' => 'ASC',
		'style' => 'list',
		'show_count' => 0, 'hide_empty' => 1,
		'use_desc_for_title' => 1, 'child_of' => 0,
		'feed' => '', 'feed_type' => '',
		'feed_image' => '', 'exclude' => '',
		'exclude_tree' => '', 'current_category' => 0,
		'hierarchical' => true, 'title_li' => __( 'Categories' ),
		'echo' => 1, 'depth' => 0,
		'taxonomy' => 'category'
	);

use_desc_for_title — эта строчка как раз отвечает за вывод всплывающих сообщений. По умолчанию стоит единица, это значит, что нужно выводить эти сообщения. Если установить ноль, то сообщения выводиться не будут. То есть строчкка будет выглядеть так:

'use_desc_for_title' => 0, 'child_of' => 0,

Но минус такого способа сами понимаете в чем. При обновлении WordPress все встанет на свои места и нужно будет заново проделывать эту процедуру. К счастью есть более элегантное решение, его-то и следует использовать. А вcего-то нужно добавить в файл темы functions.php небольшой кусок кода. Открываем этот файл на редактирование и добавляем этот код в конец перед закрывающим тегом ?>.

1
2
3
4
5
6
// Удаляем title категорий
function removeTitle($str){
  $str = preg_replace('#title="[^"]+"#', '', $str);
  return $str;
}
add_filter("wp_list_categories", "removeTitle");

Рекомендую оставить комментарий в файле, чтобы знать что это за функция, на случай, если вы забудете. Сохраняем файл и проверяем. Все должно быть нормально. Отпишитесь в комментариях, получилось ли у вас проделать все эти действия.

Не стесняйтесь делиться записью в социальных сетях. Спасибо

5 комментариев
  1. Катерина:

    Спасибо за второй способ, отлично работает) А можно было бы использовать его для того, чтобы не убрать title, а заменить его содержимое на другую переменную, например, название категории?

  2. Спасибо огромное — второй способ сработал ( доходчиво объяснили ))

  3. Странно, у меня это почему то не работает, в чем может быть дело?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *