Архив рубрики: Software

WordPress: Скрыть данные Meta из страницы вывода результатов поиска и тэгов

Если сделать поиск по сайту через виджет или из облака тэгов, то результаты будут выведены в виде нескольких отрывков записей, но в конце каждого отрывка будет указан автор записи, а также дата и время её создания. Лично у меня в блоге для темы TwentyTwelve эта информация не нужна, да ещё и выводится довольно далеко от самого фрагмента, что вызывает неразбериху и становится непонятно, к какой именно записи эта информация относится.
Можно было бы всё это скрыть с помощью css, но это неправильно, хотя бы потому, что эта информация всё равно присутствовала бы на загружаемой странице.

Удалить эти самые Мета-данные обычным скриптом у меня не получилось, так что пришлось переписывать часть функции twentytwelve_entry_meta() в файле functions.php дочерней темы:

/wp-content/themes/twentytwelve-child/functions.php
function twentytwelve_entry_meta() {
    if (!is_tag() && !is_search())
    {
        $categories_list = get_the_category_list( wp_get_list_item_separator() );

		$tags_list = get_the_tag_list( '', wp_get_list_item_separator() );

		$date = sprintf(
			'<a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s">%4$s</time></a>',
			esc_url( get_permalink() ),
			esc_attr( get_the_time() ),
			esc_attr( get_the_date( 'c' ) ),
			esc_html( get_the_date() )
		);

		$author = sprintf(
			'<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a></span>',
			esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
			/* translators: %s: Author display name. */
			esc_attr( sprintf( __( 'View all posts by %s', 'twentytwelve' ), get_the_author() ) ),
			get_the_author()
		);

		if ( $tags_list && ! is_wp_error( $tags_list ) ) {
			/* translators: 1: Category name, 2: Tag name, 3: Date, 4: Author display name. */
			$utility_text = __( 'This entry was posted in %1$s and tagged %2$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' );
		} elseif ( $categories_list ) {
			/* translators: 1: Category name, 3: Date, 4: Author display name. */
			$utility_text = __( 'This entry was posted in %1$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' );
		} else {
			/* translators: 3: Date, 4: Author display name. */
			$utility_text = __( 'This entry was posted on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' );
		}

		printf(
			$utility_text,
			$categories_list,
			$tags_list,
			$date,
			$author
		);
    }
}
Здесь я сделал проверку на тип запроса (Поиск или Тэг) с помощью условия:

!is_tag() && !is_search()