The title wordpress


Всем привет! Сегодня на seo-mayak.com я познакомлю Вас с функцией wp_title(), которая выводит заголовки WordPress, предназначенные для отображения в поисковой выдаче. Также поговорим о теге шаблона <?php wp_title();?> и о всем, что с ним связанно.

Прошу не путать с функцией the_title(), которая работает только внутри цикла WotdPress и к поисковой выдаче не имеет никакого отношения.

Кто-то может задаться вопросом, мол зачем мне разбираться там во всяких функциях, если у меня сайт на тему выпрашивания огурцов?

Конечно, чтобы создать сайт не обязательно знать, как он работает, но тогда не стоит удивляться, что Ваш горячо любимый проект будет периодически преподносить Вам самые неожиданные «сюрпризы».

Поэтому я не перестану повторять. Если Вы решили стать веб-мастером, то рано или поздно, а лучше рано, Вам все равно придется знакомится с языками программирования, так как без базовых знаний функционала WordPress или другой CMS, Вы не сможете самостоятельно вести свой проект.


Так вот, на написание данного поста, меня сподвигло большое количество вопросов от моих читателей, касательно заголовков title, поэтому считаю, что данный пост будет полезен многим начинающим веб-мастерам.

Меня часто спрашивают, почему заголовок той или иной записи в поисковике отображается не так, как надо, вернее не так, как ожидалось. Например:

Заголовок статьи | Название сайтаНазвание сайта

Или так:

Название сайтаЗаголовок статьи | Название сайта

Могут быть и другие варианты. Почему так происходит?

wp_title

На самом деле проблема не существенная, в плане ее решения, и исправляется несколькими движениями. Но прежде, чем я расскажу, что делать в такой ситуации, давайте поближе познакомимся с функцией wp_title(). Поехали!

Функция wp_title()

Функция wp_title() выводит в поисковую выдачу заголовок страницы или возвращает его в переменную (внедрена разработчиками WordPress с версии 1.5).

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

Пример №1. Изначально в шаблоне моего кулинарного бога содержимое тегов <title></title> было таким:


<title><?php wp_title('&laquo;', true, 'right');?>Dommenu.ru</title>  

Пример №2. У кого-то могут быть и другие варианты, например:

<title><?php bloginfo('name'); ?><?php wp_title('&raquo;', true, 'right'); ?></title>  

О функции bloginfo() подробней читайте здесь.

Пример №3. Встречаются еще более сложные разновидности:

<title><?php wp_title(''); ?><?php if(wp_title('', false)) { echo ' |'; } ?> <?php bloginfo('name'); ?></title>  

Мы сейчас не будем затрагивать тему целесообразности вывода названия сайта в заголовок сниппета, так как лично я считаю, что это дело каждого.

Единственное, от чего бы я хотел предостеречь начинающих веб-мастеров — это от вывода слишком длинных заголовков в сниппет, так как количество символов в заголовке, пропорционально уменьшает вместимость остального полезного пространства в title.

Итак, вернемся к основной теме. Функция wp_title() находится по адресу wp-includes/general-template.php и вызывается в нужном месте (а это в основном область между тегами <head></head>, в файле header.php) с помощью, так называемого, тега шаблона:

<?php wp_title(); ?>  

Если тег wp_title() не передает никаких параметров в функцию, то содержимое тегов title; будет выглядеть следующим образом:


  <title><?php wp_title();?></title>  

Т.е. не будет выводится названия сайта. Смотрим исходный код и видим такую картину:

<title>» Название статьи</title>

Согласитесь, не впечатляет! И что это за кавычки? Теперь давайте добавим название сайта:

  <title><?php wp_title(); ?><?php bloginfo('name'); ?></title>  

Получится вот такое безобразие:

<title>» Название статьиНазвание сайта</title>

Поэтому функции и нужны параметры, передаваемые тегом шаблона, чтобы они помогли «маме» расставить все элементы заголовка по своим местам.

Параметры функции wp_title()

Напомню как выглядело содержимое тегов title на моем кулинарном блоге:

<title><?php wp_title('&laquo;', true, 'right');?> Dommenu.ru</title>  

Надеюсь понятно, что название Dommenu.ru я прописал вручную, вместо функции bloginfo(‘name’).

Итак, тег шаблона wp_title() может передавать три параметра:

Параметр №1. Первым параметром тег передает «маме» вид разделителя между заголовком записи и названием сайта.

В моем случаи, в качестве разделителя был указан html-код правых французских кавычек &laquo;. Почему это было сделано, мне до сих пор не понятно, Ну да ладно. Конечно можно задать любой разделитель.


Параметр №2. Вторым параметром функция принимает только два аргумента: true или false.

true — дает команду выводить заголовок записи на экран;
false — говорит функции, что надо возвращать заголовок в переменную (По умолчанию true).

Параметр №3. В качестве третьего параметра можно указать только одно выражение right, которое укажет функции, что разделитель надо отображать справа от заголовка записи.

Если вообще не задавать третий параметр, то разделитель будет выведен слева от заголовка.

В общем, по всей логике, заголовок записи моего кулинарного блога в поисковой выдаче должен был иметь следующую структуру:

Заголовок записи « Название сайта

Полное убожество! На самом же деле заголовок в сниппете выглядел так:

Заголовок записи | Название сайта

Как так произошло? Почему один разделитель заменился на другой? Что за аномалия? Примерно такие вопросы пришли мне в голову.

Оказалось, что аномалии никакой нет, просто в работу функции wp_title() вмешался плагин All in One SEO Pack.

Но как он это сделал? Не так давно я опубликовал статью, посвященную функции wp_head, где попытался подробно объяснить, что такое хук и какие они бывают.


Так вот, у функции wp_title() тоже есть свой хук, с помощью которого сторонний алгоритм может вмешиваться на работу функции и влиять на результат конечного действа.

Хук wp_title

Понятно, что плагин All in One SEO Pack для изменения стандартной функции wp_title() использует хук-фильтр и я покажу его простейшее применение на наглядном примере. Для демонстрации хука я временно деактивирую плагин All in One SEO Pack.

Допустим в моем шаблоне содержимое тегов title выглядит так:

  <title><?php wp_title();?></title>  

Т.е. в функцию не передается никаких параметров. Теперь давайте воспользуемся вышеупомянутым хуком и повлияем на работу функции.

Для этого в файле functions.php, что находится в корне темы, прописываем такой фильтр:

  function mayak_wp_title($title){  $title = trim(preg_replace('/&(.+?);/','',$title));  return $title.' | '.esc_attr(get_bloginfo('name'));  }  add_filter('wp_title', 'mayak_wp_title');  

Смотрим результат в исходном коде:

<title>Заголовок страницы | Название сайта</title>

Отлично! Этого мы и добивались! Мы, с помощью хука wp_title, полностью изменили структуру заголовка в сниппете.

А теперь давайте добавим параметры в тег шаблона, а также выведем название сайта с помощью функции bloginfo():

  <title><?php wp_title('&laquo;', true, 'right');?><?php bloginfo('name'); ?></title>  

Интересно, что получим. Смотрим исходный код:


<title>Заголовок страницы | Название сайтаНазвание сайта</title>

В самом начале статьи я уже приводил такой пример заголовка. Теперь надеюсь понятно, из-за чего происходит такое безобразие.

Но наш эксперимент еще не закончен. Самое время активировать плагин All in One SEO Pack и посмотреть, что получится в итоге. Результат немного неожиданный:

<title>Заголовок страницы | Название сайта</title>

Плагин привел заголовок в порядок, несмотря на существование функции и наличие последних изменений в теге шаблона.

Итак, что делать, если в поисковой выдаче заголовок выводится в неподобающем виде?

1. Проверить настойки плагина All in One SEO Pack.
2. Если Вы пользуетесь другим SEO плагином, попробуйте его отключить и посмотреть результат в исходном коде.
3. Если Вы вообще не пользуетесь SEO плагинами, тогда проверьте файл functions.php на наличие функции, которая использует хук-фильтр wp_title и если токовая существует, то просто удалите ее и настройте вывод заголовка в теге шаблона.
4. Проверьте тег шаблона на корректность вывода всех параметров, а также названия сайта, если таковое выводиться.

До встречи!

С уважением, Виталий Кириллов


seo-mayak.com

This little tidbit is for all you WordPress themers out there.  It is important that your theme displays the proper title on the page no matter what settings a user has on their site.  As you probably are already aware, a user can go to ‘Settings’ -> ‘Reading’ in the WordPress admin menu and change what pages are used for the front page and the posts page (aka blog page)…

The title wordpress

So in the example above, I want to set a static page as my homepage and delegate another page to host my blog (aka posts page).  So now that my posts page is no longer the front page, I want to display the page title that the user assigned to that page in my theme.  This helps add clarity for users and makes all of my pages have a more consistent appearance.  As an example, it could be that I am using the posts page for displaying news items and want to label my posts page ‘News’.

Rather than leaving it up to the user to go in and try to hack your theme to get the page title to appear, you decide you want to display this page title for them automatically.

WordPress provides you with the functionthe_title(), which works great inside the loop.  Problem is, you are using that inside the loop to display the title for all of your blog entries on the page and that won’t do you any good when trying to fetch the page title outside the loop.  If you try to use this function for the page title outside the loop, all you get is the title of the first post on the page.


So how do we fetch the page title for our posts page?

There are two ways to do it.  First is the easy way:

single_post_title();

The only problem you might encounter with this method is that the function echoes our title immediately.  If you want to get the title as a variable for any reason, you would have to use output buffering to do it.

You can use the functionget_the_title() to get the title of a page as a variable just by providing the ID.  If you don’t provide an ID, then the function will try to fetch the ID for the current page.  Unfortunately, this function doesn’t detect the current page ID properly in our use case, which is why using functionthe_title() didn’t work for us earlier:  the_title() is just a wrapper function for get_the_title().

Luckily for us, WordPress does store the ID of the page you want to use for the posts page in the database.  So we can fetch the title as a variable, like this:

$our_title = get_the_title( get_option('page_for_posts', true) );


This may be more than you ever needed to know about fetching the title for an assigned posts page, but now you know! ?

wpscholar.com

Как добавить атрибут the Title к каждой странице и записи

Дело в том, что этот атрибут уже имеется на всех страницах вашего проекта. Сайт WordPress автоматически генерирует все необходимые мета теги, если этого не делает хозяин проекта. Но проблема в том, что делает это движок никудышно, в расчете на то, что вас не особо волнует SEO. Обычно, он вставляет какие-то ближайшие слова вместо того, чтобы качественно прописать the Title. Кроме того, возможно, шаблон не предусматривает этот атрибут для каждой страницы персонально. Вам необходимо это изменить.

Добавить мета теги, а точнее атрибут the Title на сайт WordPress вы сможете вручную — через код. Вам необходимо будет добавить специальные условия elseif, чтобы каждый пост (post), рубрика меню (category) и персональная страница (page) обзавелись собственными параметрами the Title. Но проблема в том, что хоть прописать нужно и не очень длинный код в 5-6 строчек, но новичок этого сделать не сумеет. Потому необходимо искать другие способы как изменить слова Тайтла и отредактировать этот атрибут. И такой способ есть — это установка специальных плагинов.

03-01-2016-21-53-57_mini

Плагины, которые активируют теги WordPress


SEO Title Tag

Это узконаправленный плагин, который как раз рассчитан на атрибут the Title. Вам необходимо будет прежде зайти, и через меню WordPress установить на сайт плагин SEO Title Tag. После этого еще нужно будет кое-что проделать с кодом. Только ничего придумывать не придется. Зайдите в редактор файла header.php. Заходите на него через хостинг, иначе ключевые изменения не активируются. Найдите в файле header.php замкнутые теги title. Теперь удалите все, что содержится между эти двумя тегами и добавьте следующий код:

<?php if (function_exists('seo_title_tag')) { seo_title_tag(); }
else { bloginfo('name'); wp_title();} ?>

Данный код активирует тайтл. Теперь, когда вы будете редактировать сайт WordPress через меню админки, в разделе со страницами появится строка, куда можно вписать title. Таким образом, вы сможете добавить заголовок для каждой страницы.

WordPress seo by yoast

Это настоящий хит среди других SEO-плагинов для WordPress. Когда вы скачаете и установите этот модуль, ваш сайт гарантированно улучшит позиции. Сможете прописывать ключевые слова и редактировать мета так, как душе угодно. Разумеется, делать это нужно будет по правилам, чтобы органический поток постепенно увеличивался.

Для начала скачайте плагин WordPress seo by yoast. Во время активации модуля вам предложат отслеживать работу инструмента, якобы для улучшения поддержки. Лучше запретите это, чтобы блог не прогружался. Если ранее вы уже пользовались плагинами для мета, тогда нажмите кнопку «Импортировать», чтобы сохранить все прописанные теги и ключевые слова сайта. Далее пройдет процедура передачи данных, все теги и ключевые слова закрепятся уже за новым плагином, ваше мета сохранится, и вы будете оповещены об успешном окончании импорта информации.

После установки и импорта данных в плагин, обязательно зайдите в меню, и настройте его. Чтобы страницы получили мета, необходимо отметить какие именно теги вы будете вводить самостоятельно, а какие доверите модулю. Обязательно отметьте галочку «Использовать в мета ключевые слова». А чтобы для каждой страницы можно было задавать отдельный тайтл, воспользуйтесь функцией Title separator — это разделитель, который отдельно воспринимает заголовок и тайтл страницы. Если вы его не активируете, тогда ключевые слова тайтла автоматически превратятся в заголовок, либо в начало текста страницы, что очень нежелательно для оптимизации.

Еще одно преимущество плагина WordPress seo by yoast — это возможность редактировать тайтлы сразу для всех разделов сайта. У модуля есть встроенный массовый редактор, который предоставит вам список всех доступных страниц. Вы сможете не заходя во все разделы, изменить тайтлы для страницы. Буквально за 5 минут так можно отредактировать до 10 страниц. В ином случае у вас бы на это ушел битый час. Ведь чтобы изменить title без редактора, вам необходим заходить в меню Ворпдерсс в раздел «Страницы», выбирать нужный раздел из списка, и уже там снизу, где мета, вводить свой тег.

All in One SEO Pack

Это ключевой конкурент предыдущего плагина. По мнению многих, этот модуль даже лучше. Ведь он ничем не уступает инструменту WordPress seo by yoast. Вам предстоит пройти аналогичную процедуру установки и активации плагина. Меню настроек у этого модуля немного отличается, но в целом все очень похоже. Вы сможете либо задать автоматическую генерацию тайтлов, основанную на копированни заголовков страниц, либо активировать теги в разделе «Мета», чтобы прописывать ключевые слова самостоятельно.

А теперь немного о правилах написания Title. Помните, что его длина должна быть меньше 75 символов. Тайтл должен выглядеть натурально, но при этом обязательно содержать ключевые слова. Этот атрибут обязан заинтересовать проходимца в поисковике, чтобы тот совершил переход на ваш ресурс. И не забудьте, что чем ближе слова к началу тайтла, тем они большую играют роль, тем больше их вес. Потому генерируйте теги с умом, чтобы поисковые роботы это оценили.

Похожие статьи

wordpresslib.ru

function wp_title( $sep = '&raquo;', $display = true, $seplocation = '' ) { 	global $wp_locale;  	$m = get_query_var( 'm' ); 	$year = get_query_var( 'year' ); 	$monthnum = get_query_var( 'monthnum' ); 	$day = get_query_var( 'day' ); 	$search = get_query_var( 's' ); 	$title = '';  	$t_sep = '%WP_TITLE_SEP%'; // Temporary separator, for accurate flipping, if necessary  	// If there is a post 	if ( is_single() || ( is_home() && ! is_front_page() ) || ( is_page() && ! is_front_page() ) ) { 		$title = single_post_title( '', false ); 	}  	// If there's a post type archive 	if ( is_post_type_archive() ) { 		$post_type = get_query_var( 'post_type' ); 		if ( is_array( $post_type ) ) { 			$post_type = reset( $post_type ); 		} 		$post_type_object = get_post_type_object( $post_type ); 		if ( ! $post_type_object->has_archive ) { 			$title = post_type_archive_title( '', false ); 		} 	}  	// If there's a category or tag 	if ( is_category() || is_tag() ) { 		$title = single_term_title( '', false ); 	}  	// If there's a taxonomy 	if ( is_tax() ) { 		$term = get_queried_object(); 		if ( $term ) { 			$tax = get_taxonomy( $term->taxonomy ); 			$title = single_term_title( $tax->labels->name . $t_sep, false ); 		} 	}  	// If there's an author 	if ( is_author() && ! is_post_type_archive() ) { 		$author = get_queried_object(); 		if ( $author ) { 			$title = $author->display_name; 		} 	}  	// Post type archives with has_archive should override terms. 	if ( is_post_type_archive() && $post_type_object->has_archive ) { 		$title = post_type_archive_title( '', false ); 	}  	// If there's a month 	if ( is_archive() && ! empty( $m ) ) { 		$my_year = substr( $m, 0, 4 ); 		$my_month = $wp_locale->get_month( substr( $m, 4, 2 ) ); 		$my_day = intval( substr( $m, 6, 2 ) ); 		$title = $my_year . ( $my_month ? $t_sep . $my_month : '' ) . ( $my_day ? $t_sep . $my_day : '' ); 	}  	// If there's a year 	if ( is_archive() && ! empty( $year ) ) { 		$title = $year; 		if ( ! empty( $monthnum ) ) { 			$title .= $t_sep . $wp_locale->get_month( $monthnum ); 		} 		if ( ! empty( $day ) ) { 			$title .= $t_sep . zeroise( $day, 2 ); 		} 	}  	// If it's a search 	if ( is_search() ) { 		/* translators: 1: separator, 2: search phrase */ 		$title = sprintf( __( 'Search Results %1$s %2$s' ), $t_sep, strip_tags( $search ) ); 	}  	// If it's a 404 page 	if ( is_404() ) { 		$title = __( 'Page not found' ); 	}  	$prefix = ''; 	if ( ! empty( $title ) ) { 		$prefix = " $sep "; 	}  	/** 	 * Filters the parts of the page title. 	 * 	 * @since 4.0.0 	 * 	 * @param array $title_array Parts of the page title. 	 */ 	$title_array = apply_filters( 'wp_title_parts', explode( $t_sep, $title ) );  	// Determines position of the separator and direction of the breadcrumb 	if ( 'right' == $seplocation ) { // sep on right, so reverse the order 		$title_array = array_reverse( $title_array ); 		$title = implode( " $sep ", $title_array ) . $prefix; 	} else { 		$title = $prefix . implode( " $sep ", $title_array ); 	}  	/** 	 * Filters the text of the page title. 	 * 	 * @since 2.0.0 	 * 	 * @param string $title Page title. 	 * @param string $sep Title separator. 	 * @param string $seplocation Location of the separator (left or right). 	 */ 	$title = apply_filters( 'wp_title', $title, $sep, $seplocation );  	// Send it out 	if ( $display ) { 		echo $title; 	} else { 		return $title; 	} }

wpseek.com

Как изменить заголовок сайта на WordPress

Откройте файл header.php и найдите в нем строку кода, содержащую тег <h1>. Она может выглядеть, например, так:

<h1><a href="<?php bloginfo('url'); ?>/" title="<?php bloginfo('description'); ?>"><?php bloginfo('name'); ?><br /><span><?php bloginfo('description'); ?></span></a></h1>

Удалите теги <h1>, чтобы получилось:

<a href="<?php bloginfo('url'); ?>/" title="<?php bloginfo('description'); ?>"><?php bloginfo('name'); ?><br /><span><?php bloginfo('description'); ?></span></a>

Удалите все лишние, оставив строчку

Теперь откройте single.php – файл, отвечающий за отображение одиночной записи. Код, отвечающий за вывод названия заметки – это

<?php the_title(); ?>

Вам нужно найти его и убрать около него все лишние, добавив к нему теги H1.

Так, если изначально строка кода, отвечающая за вывод названия выглядела так:

<h2 style="font-size: 18pt;"><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>

Необходимо исправить ее, приведя к следующему виду:

<h1><?php the_title(); ?></h1>

Данная инструкция может быть полезной при использовании не только WordPress. Независимо от того, на какой CMS выполнен ваш сайт, название новости или статьи должно быть заключено в H1 и не представлять собой ссылку ссылающуюся на ту же страницу, где она находится.

Как прописать TITLE WordPress без плагина

Стандартные SEO плагины для WordPress сильно загрязняют HTML код страницы и тормозят сайт. Намного удобнее выводить TITLE страниц и записей с использованием встроенных функций WP, без установки дополнительных плагинов.

Для этого можно использовать опцию «Дополнительные поля» в WordPress. Открываем вкладку «Добавить новую» (страницу или запись). В меню сверху «Настройки экрана» ставим галочку напротив пункта «Произвольные поля». Затем в появившейся области под кнопкой «Добавить произвольное поле» кликаем по ссылке «Введите новое».

Произвольные поля в WordPress

В строке «Имя» вводим любое название латинскими буквами. В дальнейшем это поле будет служить нам для хранения TITLE каждой записи или страницы. В строку «Значение» — непосредственно TITLE страницы или записи, которую вы добавляете.

Важно! Настраиваемые поля страниц и записей различаются и никак не связаны друг с другом.

Переходим к правке шаблона сайта. Откройте файл header.php и добавьте под строкой строку, где seotitle — это название произвольного поля.

  <title><?php echo get_post_meta($post->ID, 'seotitle', true); ?></title>  

Теперь каждый раз при добавлении каждой новой страницы или записи вы можете прописывать свой TITLE в WordPress без установки плагинов.

О добавлении мета тегов в WordPress без установки плагинов читайте статью Description и Keywords в Вордпресс, там описаны два способа.

seo-praktika.com

[ Perfect Title Tags ] Keeping an eye on all things WordPress, I have noticed an ongoing fascination with configuring the ultimate WordPress <title> tags. Many bloggers use various plugins to generate differently configured <title> tags depending on particular page views. A good example of this is seen in the All in One SEO Pack, which, among many other things, enables users to specify custom titles for several different types of pages. While there is nothing wrong with this approach, some of us prefer to run WordPress with as few plugins as possible. If you want to create perfect WordPress title tags without a plugin, this post will certainly help you do it. First we’ll explore some of the basics, continue with some common examples, and then conclude with a comprehensive, highly flexible script for generating distinct page titles. All of the techniques presented in this article should work well with virtually all versions of WordPress.

The Basics

The <title> tag is used within the <head> section of (X)HTML pages to communicate the title of the document to both humans (your visitors) and machines (search engines). For dynamically generated sites, such as those powered by WordPress, many different types of pages exist, including:

  • The Home page
  • Individual pages
  • Single post views
  • Archived post views
  • Date-based archives
  • Category archives
  • Author archives
  • 404 error pages
  • Search results
  • Tag archives

..and so on. Producing optimally configured titles for each of these page types is generally accomplished in the theme’s header.php file using a combination of (X)HTML and PHP. Here is a very basic example:

<title><?php bloginfo('name'); ?><?php wp_title(); ?></title>

..which is taken directly from the “Classic” theme that comes bundled with WordPress. With that code in place, every title for the Classic theme will be displayed with the following format:

Blog Name » Title of Displayed Page

Of course, this configuration does the job, but it could definitely be improved. For example, it has been reported that placing the page title before the blog title improves the SEO value of the page. This also improves usability, as the purpose of the page is more clearly communicated to visitors, who are more than likely searching for a specific article, not the name of your blog. Here is how to reverse the order of the blog name and page title in WordPress 2.5+:

<title><?php wp_title('&raquo;','true','right'); ?><?php bloginfo('name'); ?></title>

..which will output this title sequence for every page except the home page:

Title of Displayed Page » Blog Name

With this code, the home page will simply display the name of the blog. Alternately, to generate the same title formats for pre-2.5 versions of WordPress, we need to employ an alternate method. Something similar to either of these examples should work just fine:

<title><?php wp_title(''); ?><?php if (!(is_404()) && (is_single()) || (is_page()) || (is_archive())) { ?> &raquo; <?php } ?><?php bloginfo('name'); ?></title>

[OR]

<title><?php wp_title(' '); ?><?php if(wp_title(' ', false)) { echo ' &raquo; '; } ?><?php bloginfo('name'); ?></title>

The additional code seen in either of these two methods is required in pre-2.5 WP to ensure that the separator is not displayed on the home page (i.e., when no preceding title is present). In WordPress 2.5, this is handled more eloquently via the new seplocation parameter1. All versions of WordPress, however, support the sep and echo parameters for the wp_title() tag. Here is the new, 2.5+ version of the wp_title tag; the first two parameters are available to all versions of WordPress, while the seplocation parameter is only useful in 2.5+:

wp_title('sep','echo','seplocation')

  • sep — string value indicating the separator displayed before the title
  • echo — boolean value determining whether or not the title is displayed
  • seplocation — specifies the position of sep string

By default, the wp_title() tag displays the following information, depending on page type:

  • The Home page — no output
  • Individual pages — page title
  • Single post views — post title
  • Archived post views — no output
  • Date-based archives — year and/or month
  • Category archives — category title
  • Author archives — public username
  • 404 error pages — no output
  • Search results — no output
  • Tag archives — tag name

So, we have already seen one way of optimizing the traditional <title> tag configuration. Let’s wade out a little deeper and see what else we can come up with..

Getting Specific

Going beyond the rudimentary title tag of the Classic WordPress theme, let’s have a look at the slightly more advanced title configuration of the ubiquitous “Default” WordPress theme. Here it is:

<title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> &raquo; Blog Archive <?php } ?> <?php wp_title(); ?></title>

This code advances the Classic configuration with the addition of this PHP snippet:

<?php if ( is_single() ) { ?> &raquo; Blog Archive <?php } ?>

..which inserts additional information if the page is a single post. Thus, in the default theme, any page that is not single will feature a title formatted exactly as in the Classic theme:

Blog Name » Title of Displayed Page

If the page is a single-post view, the Default theme generates this title instead:

Blog Name » Blog Archive » Title of Displayed Page

To better optimize the Default theme’s title tags, we can reverse the order of the blog name and page title in WordPress 2.5+:

<title><?php wp_title('&raquo;','true','right'); ?><?php if ( is_single() ) { ?> Blog Archive &raquo; <?php } ?><?php bloginfo('name'); ?></title>

..and in pre-2.5 versions of WordPress:

<title><?php wp_title(' '); ?><?php if(wp_title(' ', false)) { echo ' &raquo; '; } ?><?php if ( is_single() ) { ?> Blog Archive &raquo; <?php } ?><?php bloginfo('name'); ?></title>

Either of these methods will produce the following SEO-optimized titles:

Single post views:
Title of Displayed Page » Blog Archive » Blog Name

All other supported views:
Title of Displayed Page » Blog Name

So now we have seen how to optimize WordPress titles while using PHP to enhance their specificity. Next, we’ll examine how to generate comprehensive, highly flexible title configurations..

Custom-Fit Title tags

While it’s helpful to display custom titles for single-post views, it would be even better to display customized titles for each different type of page. Using a few native WordPress tags and a dash of PHP, we can automatically generate customized <title> tags for each of the following page types:

  • Home page
  • Tag archives
  • Search results
  • 404 error pages
  • Individual pages and single posts
  • Archived post, date, category, and author pages

By expanding on the basic principles outlined above, we summon an extremely flexible script for generating customized title tags. Here is what this script looks like when exploded into multi-line format:

<title>  <?php   if (function_exists('is_tag') && is_tag()) {   	echo 'Tag Archive for &quot;'.$tag.'&quot; - ';   } elseif (is_archive()) {   	wp_title(''); echo ' Archive - ';   } elseif (is_search()) {   	echo 'Search for &quot;'.wp_specialchars($s).'&quot; - ';   } elseif (!(is_404()) && (is_single()) || (is_page())) {   	wp_title(''); echo ' - ';   } elseif (is_404()) {  	echo 'Not Found - ';   } bloginfo('name');   ?>  </title>

For those of us who understand PHP, this script speaks for itself; however, for those who would benefit from a brief explanation, here is a commented version of the same script:

<title>  <?php // WordPress custom title script  // is the current page a tag archive page? if (function_exists('is_tag') && is_tag()) {   	// if so, display this custom title 	echo 'Tag Archive for &quot;'.$tag.'&quot; - ';   // or, is the page an archive page? } elseif (is_archive()) {   	// if so, display this custom title 	wp_title(''); echo ' Archive - ';   // or, is the page a search page? } elseif (is_search()) {   	// if so, display this custom title 	echo 'Search for &quot;'.wp_specialchars($s).'&quot; - ';   // or, is the page a single post or a literal page? } elseif (!(is_404()) && (is_single()) || (is_page())) {   	// if so, display this custom title 	wp_title(''); echo ' - ';   // or, is the page an error page? } elseif (is_404()) {  	// yep, you guessed it 	echo 'Not Found - ';   } // finally, display the blog name for all page types bloginfo('name');   ?>  </title>

Hopefully, this provides enough insight for you to customize the function to suit your specific needs. For example, you may want to use a different type of separator in your titles, or perhaps you need to rephrase a particular title — whatever! The point is to learn how custom titles are generated so that you will be able to create your own.

Also, although you may use the expanded, multi-line version of the script in your pages, consolidating it into a single line saves space and provides greater control over your page’s source-code output. To see what I mean, compare the expanded version to the following condensed version:

<title><?php if (function_exists('is_tag') && is_tag()) { echo 'Tag Archive for &quot;'.$tag.'&quot; - '; } elseif (is_archive()) { wp_title(''); echo ' Archive - '; } elseif (is_search()) { echo 'Search for &quot;'.wp_specialchars($s).'&quot; - '; } elseif (!(is_404()) && (is_single()) || (is_page())) { wp_title(''); echo ' - '; } elseif (is_404()) { echo 'Not Found - '; } bloginfo('name'); ?></title>

Once in place, either version of this code will generate the following title formats:

// Home page: Blog Name  // Tag archives: Tag Archive for "tag name" - Blog Name  // Search results: Search for "search string" - Blog Name  // 404 error pages: Not Found - Blog Name  // Individual pages and single posts: Post or Page Title - Blog Name  // Archived post, date, category, and author pages: Date, Category, or Author - Blog Name

Of course, the title for each of these different page types is completely customizable by simply editing the title script. For example, let’s say you wanted to “spice up” the title of the home page by adding the blog description. No sweat — simply replace the single instance of bloginfo('name'); with this conditional snippet:

if (is_home()) {   	bloginfo('name'); echo ' - '; bloginfo('description');   } else {   	bloginfo('name');   }

It’s as easy as that. Once in place, the title for your home page will now include your blog’s definition:

Blog Name - Blog Description

You know, I could go on and on with this stuff, but instead, allow me to finish by presenting the complete, condensed version of the title script, which includes the additional description for the home page. In my opinion, this is as close to the perfect WordPress title script as it gets:

<title><?php if (function_exists('is_tag') && is_tag()) { echo 'Tag Archive for &quot;'.$tag.'&quot; - '; } elseif (is_archive()) { wp_title(''); echo ' Archive - '; } elseif (is_search()) { echo 'Search for &quot;'.wp_specialchars($s).'&quot; - '; } elseif (!(is_404()) && (is_single()) || (is_page())) { wp_title(''); echo ' - '; } elseif (is_404()) { echo 'Not Found - '; } if (is_home()) { bloginfo('name'); echo ' - '; bloginfo('description'); } else { bloginfo('name'); } ?></title>

Wrapping up..

In conclusion, allow me to reiterate the importance of maximizing your title tags. In doing so, you will enjoy greater search-engine benefits and improve navigational consistency and site usability. Using the techniques described in this article, WordPress users are well-equipped to create their own distinctive title tags without a plugin.

perishablepress.com

Due to the flexibility of WordPress, there are a large number of scenarios where you might require your blog to do something unusual and out of the ordinary. For example, under normal circumstances you would never need to remove the post title – after all, it happens to be the most important and visible indicator of what your post is about, not just from a visitor’s perspective but from that of SEO as well! But what if you’re not utilizing WordPress as a blog, but rather as a website builder? In that case, the page title might not make much sense. It may not fit in with your design to have a huge “About Us” title at the top of your introduction. Or you may have a different reason altogether.

For whatever reason, we’re going to look at removing the page titles from WordPress posts or pages. You might think that the answer is as simple as not filling a title into the WordPress editor in the first place! That would work, sure. But how would you identify your posts and pages in the dashboard if you were to do that? Don’t worry – there are more effective means to removing the page titles. I’m going to start with WordPress hooks and then show you how to do it with CSS both for posts as well as pages.

Using WordPress Filters to Remove the Page Title

So let’s open up a sample WordPress post on my test blog. As you can see below, the title is displayed nice and prominently.

want to remove this title

Using WordPress hooks, I can change it to whatever I like or even remove it completely. We’re looking for a solution that has the following properties:

  1. Works on all themes;
  2. Doesn’t require a plugin;
  3. “Plug and Play”.

I prefer not to install plug-ins if I can avoid them. They quickly become unmanageable and when the function is highly specific, I prefer to write a snippet of code myself. In this situation, we’re going to make use of a WordPress filter known as “the_title”. In your functions.php file or in the place where you normally keep your custom PHP code, copy and paste the following snippet:

code for no title

With this, we hook into “the_title” with a function of our own called “change_the_title”. This accepts the variable $title which we simply set to nothing and return it. Just a few lines of code wipe out page titles across the site. Here’s what my post looks like as soon as I’ve implemented it:

title removed

But wait! What if I don’t want to remove titles across the site, but only on pages? Well then, the answer is simple. Simply include a check for a page before setting the title to an empty string. Our “change_the_title” function then becomes:

You can grant this even more flexibility by assigning those posts and pages for which you want to remove the title to a separate category or custom post type and then perform a check for that condition in the function.

Using CSS to Remove the Page Title

If for whatever reason you prefer not to mess around with PHP code, we can achieve the same effect – albeit with a little less flexibility – via CSS instead. Also, since themes differ so widely in their structure, what works for one may not work for the other. But still – this should account for the vast majority of themes. The first step is to find out what classes identify your page title. For example, using the Google developer tools, I find that mine can be uniquely referenced via the “.entry-title” class:

entry-title css

For this, I simply add the following CSS either to style.css or another theme independent location.

change css

And if you want to hide only the page titles, find out what unique class applies to that subsection of them. In my blog (and probably most of the others), the following code works just fine:

So there you have it! Two easy and flexible ways to remove page titles across various types of posts and pages in your WordPress blog in a scalable manner.

www.webhostinghero.com

How to limit WordPress title length

When you want to keep your post titles as short as possible and you work with multiple authors, that might become a problem. Whether you’re starting a fashion blog, food blog or any other type of a website, everyone would have to take care of their titles, count words or letters and it would probably be a hard time doing that every time when you write a new article.

So how do you limit a post title in WordPress so it automatically takes care of the title length being showed on your page?

Let’s start with a simple solution.

  1. Open functions.php in your theme
  2. Paste the following code:
  3. function max_title_length( $title ) {  $max = 20;  if( strlen( $title ) > $max ) {  return substr( $title, 0, $max ). " &hellip;";  } else {  return $title;  }  }
  4. Place the next function wherever you want in your theme. For example, if you want to show shortened titles on your homepage, you want to place this code into your Main Index Template (index.php)
  5. add_filter( 'the_title', 'max_title_length');

As you can see in the code, variable $max is used to limit the length of your post title. You are free to change it to any number you want. But be aware that the optimal length of your title is between 55 and 60 characters.

There you go. If you have called the function in your Main Index Template, your titles will be displayed shortened and after, in our case 20 characters, three dots will be revealed to show there is more to display.

By doing the same, you are free to hook the function wherever you want it – be it header, footer, sidebar or anything else.

How to change the alignment of your post title

WordPress Themes which you can use in WordPress are different. You can use a standard one that comes with WordPress, create your own, find a free one among thousands available themes or purchase a premium one from the Internet.

The title wordpress

Even if you have paid big bucks for your theme, it won’t have everything in reach of your hand and it’s impossible to incorporate everything into a user-friendly interface. So, if you want to change the alignment of your post titles and your theme doesn’t come with an easy-to-change option, you will have to do it yourself.

Prepare your tools and let’s loose some screws so you can get the job done. OK, this sounded like there are hours of work before you – don’t worry, you’ll be done in a minute or so.

It doesn’t matter which theme you’re using, a title for your post will be located in the same file:

  1. Navigate to Appearance->Editor
  2. On the right side, find Single Post file (single.php) and open it or even better, open the file in some external editor
  3. Search file for “<?php the_title(); ?>“
  4. Modify the tag with the desired alignment:
  5. LEFT:

    <div align="left"><?php the_title(); ?></div>

    CENTER:

    <div align="center"><?php the_title(); ?></div>

    RIGHT:

    <div align="right"><?php the_title(); ?></div>
  6. Save changes

That’s it. Now you are free to open any of your posts and see the changes you have made. If you have followed the steps and changed alignment, your post title should appear in the left, center or right.

Working with WordPress is fun, isn’t it? If you want to learn more about blogging and customizing WordPress, see our resources and level up your webmaster skills in no time.

Write a list of words which can’t be used in post titles

While you can relatively easy limit the length of a title in WordPress, sometimes you will need to modify titles even more. Limiting the number of characters in a post title can help you maintain a stable design and it can help with SEO, but your authors would still be able to write anything they want.

Depending on what you write or on your partnership with some other company, you might have some words or phrases that you want to avoid in your titles. Those might be profanity words that you want to avoid or simply a brand name or two that you don’t want to be advertised on your site.

While you can sit and talk with your authors about that and ask them not to mention words which might harm your site’s reputation, it is just the matter of time when one of the authors will forget all about it and publish a title which can make you look bad or even lose money by breaching the deal with a partner.

The title wordpress

Instead of a verbal warning, why wouldn’t you write a function which will forbid anyone on your site to write a title with specific words? Or even better, why wouldn’t you just copy and paste the same function from below and simply change the words which you want to block?

Now that you’ve decided to remove specific words from post titles, let’s see how you can do that.

Remove specific words from titles:

  1. Open functions.php file
  2. Copy and paste the code:
  3. function titlerestriction($title){  global $post;  $title = $post->post_title;  $restrictedWords = "word1;word2;word3";  $restrictedWords = explode(";", $restrictedWords);  foreach($restrictedWords as $restrictedWord){  if (stristr( $title, $restrictedWord))  wp_die( __('Error: You have used a forbidden word in post title') );  }  }  add_action('publish_post', 'titlerestriction');  
  4. Change words on the 4th Add as many as you like but don’t forget to separate them with semicolon
  5. Customize the error message on the 8th line
  6. Save changes

If you open a new post and try to publish it while the title contains one of the words you have specified in the code, WordPress will stop you from publishing the post and warn you with the message.

Although you may have told your authors about forbidden words, it wouldn’t hurt to show those words right below the title and write them as a reminder.

If it’s not a top secret, can you tell us which words have you put on the list and why?

A small title separator change can make a big impact on your site

Title separator is that one simple character which separates your website title from post and page names. Although as not important as finding the right keywords for your articles, this can be seen on top of your browser tab once you open a website, but more importantly, this separator will be used by Google and other search engines when they display your site in search results.

While there is no proof that different separators can have a different impact on your SEO, you might want to change the standard separator just in order to change the way your WordPress website is being displayed on all the other sites in those search results.

Change title separator:

After WordPress 4.4 came to life, there were new filters introduced, and one of them is directly in charge of title separators. In order to change your title separator, follow these few steps:

  1. Open functions.php file
  2. Copy and paste the following code:
  3. function wploop_change_separator()  {  return '|';  }  add_filter('document_title_separator', 'wploop_change_separator');
  4. Change the separator in between single quotes on the third line
  5. Save changes

Change title separator for older versions of WordPress:

Before WordPress 4.4 was introduced, title separator could have been easily changed by using the wp_title function. WordPress developers first removed the function from the list of supported ones and it became deprecated. But since a huge number of themes are still using it, developers decided to bring it back.

The following function can still help you change that separator if you’re using older WordPress version, but we advise that you update your WordPress as soon as possible (for many different reasons) and go with the new method shown above; sooner or later, wp_title function will become deprecated once and for all and you will have to modify functions.php once again.

function change_wp_title_separator( $title, $sep ) {  $sep = '-';  $title = str_replace( '|', $sep, $title );  return $title;  }  add_filter( 'wp_title', 'change_wp_title_separator', 10, 2 );

While you can change the separator to any character you want, we advise not to do so. For example, there are some special characters which Google simply won’t show and you don’t want your site title to look unprofessional. Some of the most common separators are “|”, “-“ and “>” so don’t exaggerate and choose the one you like the best.

Title tags can be easily changed via custom fields

Title tags are important for your website. Not only they will show up to users, but they will take an important role in your SEO. Choosing the right title tag can have a big impact on search engines and you can benefit from changing title tags if done correctly.

For a regular user, it is easy to change title tags simply by navigating to Settings -> General. Similarly, going to Appearance -> Customize will show a place where almost every theme will allow you to change your site’s title and tagline. Usually, websites use their title and post/page name, separated by one character. But you can change that if you want to be so rebellious.

With WordPress 4.4, new filters allowed you to change titles, taglines, and separators more easily.

Create a static title tag for all of your posts:

Although not recommended, you might want to change page title tag and make it the same on all of your WordPress posts and pages. Instead of using a title, separator and post name, for example, you can change that into something static:

  1. Open functions.php file
  2. Copy and paste the following:
  3. function same_title_tag()  {  return 'First Site Guide';  }  add_filter('pre_get_document_title', 'same_title_tag');  
  4. Change the title on the 3rd line
  5. Save changes

This function would change every post and page title into “First Site Guide” (hey, don’t use our name, be creative), but that’s acceptable if you’re about to have one page only. Instead, using default titles is a much better option when it comes to SEO and overall user experience. Even if you had only home and contact page, it’s still a better option to have that “contact” part written in the title tag.

Change title tags through custom fields:

But, let’s build upon this and give your authors the possibility to add custom titles to their posts:

  1. Open functions.php
  2. Copy and paste the code:
  3. function post_meta_title_tag()  {  $customPostTitleMeta = get_post_meta( get_the_ID(), 'custom_post_title', true);  if($customPostTitleMeta)  {  return $customPostTitleMeta;  }  return '';  }  add_filter('pre_get_document_title', 'post_meta_title_tag');  
  4. Save changes
  5. Open a post for which you want to change title
  6. In custom field’s name, write “custom_post_title”
  7. In custom field’s value, write any title you want to use for that post
  8. Save changes/publish post

Now, instead of getting a default title, your post would use the custom one you have entered on the 6th step. If you leave out the custom field, WordPress will load default title tag and use it for that post.

Control your WordPress titles

We hope that this guide has helped you control your WordPress titles more easily. But if you have any questions, please feel free to leave and comment and we’ll try to asnwer them as soon as possible.

firstsiteguide.com


You May Also Like

About the Author: admind

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.