Убрать слово "Archive: " из заголовка категории - WooThemes Canvas

Привет!

В сегодняшней заметке хочу поделиться полезным решением для тех, кто использует на своем сайте тему Canvas от известной команды WooThemes, или же другие популярные темы от этих разработчиков.

Недавно я разрабатывал один классный сайт по продаже недвижимости, и в процессе столкнулся с небольшой проблемкой. Несмотря на то, что вся тема была переведена на русский язык, на страницах всех архивов (архива категории, архива тегов, архивов по периодам времени и др.) перед основным заголовком отображалось слово "Archive: ".

Обычно в таких случаях нужно просто залезть в шаблон, найти быстренько через CTRL+F это слово и убрать его, но только не в этом случае. В теме Canvas (другие не проверял) заголовок архива выводится через функцию woo_archive_title, которая находится где-то глубоко в файлах ядра темы (то есть в глубинах WooFramework). И просто лезть туда и менять там что-то не имеет смысла, потому что при обновлении эта правка пропадет, и нужно будет вписывать ее по-новой. Это скучно, согласитесь? 🙂

Поэтому, после тщательной гуглежки было найдено нормальное решение этого вопроса. Оказалось оно, как всегда, очень простым. Функция woo_archive_title была plugable, то есть легко-заменяемая.

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

Я уже подготовил для вас код и внес в него необходимые правки.

Решение:

function woo_archive_title( $before = '', $after = '', $echo = true )
{
	global $wp_query;

	if ( is_category() || is_tag() || is_tax() ) {

		$taxonomy_obj = $wp_query->get_queried_object();
		$term_id = $taxonomy_obj->term_id;
		$taxonomy_short_name = $taxonomy_obj->taxonomy;

		$taxonomy_raw_obj = get_taxonomy( $taxonomy_short_name );

	}

	$title = '';
	$delimiter = ' | '; // разделитель
	$date_format = get_option( 'date_format' );

	// Архив категории
	if ( is_category() ) {

		// $title = '<span class="fl cat">' . single_cat_title( '', false ) . '</span>';
		$title = single_cat_title( '', false );

		$cat_obj = $wp_query->get_queried_object();
		$cat_id = $cat_obj->cat_ID;
		// $title .= ' <span class="fr catrss"><a href="' . get_term_feed_link( $term_id, $taxonomy_short_name, '' ) . '">' . __( 'RSS feed for this section','woothemes' ) . '</a></span>';

		$has_title = true;
	}

	// Архив за день
	if ( is_day() ) {

		$title = get_the_time( $date_format );
	}

	// Архив за месяц
	if ( is_month() ) {

		$date_format = apply_filters( 'woo_archive_title_date_format', 'F, Y' );
		$title = get_the_time( $date_format );
	}

	// Архив за год
	if ( is_year() ) {

		$date_format = apply_filters( 'woo_archive_title_date_format', 'Y' );
		$title = __( 'Archive', 'woothemes' ) . $delimiter . get_the_time( $date_format );
	}

	// Архив автора
	if ( is_author() ) {

		$title = __( 'Author Archive', 'woothemes' ) . $delimiter . get_the_author_meta( 'display_name', get_query_var( 'author' ) );
	}

	// Архив тегов
	if ( is_tag() ) {

		$title = __( 'Tag Archives', 'woothemes' ) . $delimiter . single_tag_title( '', false );
	}

	// Архив для различных типов записей
	if ( function_exists( 'is_post_type_archive' ) && is_post_type_archive() ) {

		/* Get the post type object. */
		$post_type_object = get_post_type_object( get_query_var( 'post_type' ) );

		$title = $post_type_object->labels->name . ' ' . __( 'Archive', 'woothemes' );
	}

	// Архив для различных форматов записей
	if ( get_query_var( 'taxonomy' ) == 'post_format' ) {

		$post_format = str_replace( 'post-format-', '', get_query_var( 'post_format' ) );

		$title = get_post_format_string( $post_format ) . ' ' . __( ' Archives', 'woothemes' );
	}

	// Основная таксономия
	if ( is_tax() ) {
		// $title = $taxonomy_obj->name;
		$title = $taxonomy_obj->description;
	}

	if ( mb_strlen($title) == 0 )
	return;

	$title = $before . $title . $after;

	$title = apply_filters( 'woo_archive_title', $title, $before, $after );

	if ( $echo )
		echo $title;
	else
		return $title;

}

P.S. Если у вас появятся какие-то вопросы или предложения, то, пожалуйста, не стесняйтесь и пишите в комментах ниже.

[ Прочитайте комменты ниже или напишите свой... ]

Ищете хостинг для своего сайта? Могу порекомендовать свой (нажмите здесь)

Комментариев пока нет.