Задача: Получить динамический title на странице, который бы изменялся в зависимости от содержимого URL или обновляемого содержимого страницы.
Погуглив ( Динамический title ), обнаружил, что все готовые решения сводятся выводу различных title в зависимости от категории, тега, ошибки, результатов поиска и.т.д, то есть от состояния переменных wordpress, и сводятся к виду echo 'Переменная:'; wp_title('');
.
В таком виде title изменяется только от серфинга пользователя по разным страницам сайта, но моя задача состояла чтобы одна и та же страница или категория, имела различный title в зависимости от дополнительных параметров.
Итак делаем динамический title зависимый от URL:
логика:
1. Получаем URL
2. разбиваем URL на составные части
Получаем массив вида
[php]
Array
(
[0] => базовый URL
[1] => дополнительный URL
)
[/php]
3. Присваиваем значение по умолчанию для переменной $dyntitle
4. Проверяем присутствует ли добавочный запрос в URL, если нет, то $dyntitle
принимает значение по умолчанию
5. Если в строке есть добавочный запрос, проверяем его значение, если значение равно цифре назначаем переменной $dyntitle
значение цифра
5. Если запрос не соответствует цифре, присваиваем значение переменной $dyntitle
— буква
Собственно код:
[php]
$url = parse_url($_SERVER["REQUEST_URI"]);
$url = preg_split("/\//", $url["path"], -1, PREG_SPLIT_NO_EMPTY);
$dyntitle =’Динамический title — пустой — на странице или категории WordPress’;
if (isset($url[1]))
{
if (preg_match(‘/^[0-9]/’, $url[1], $out_arr))
$dyntitle =’Динамический title — цифра: ‘.$url[1].’ — на странице или категории WordPress’;
else
$dyntitle =’Динамический title — буква: ‘.$url[1].’ — на странице или категории WordPress’;
}
[/php]
Итого: Мы имеем переменную, в которую записаны необходимые нам,
зависимые от URL заголовки. Осталось только вывести их в нужном месте, например так:
[php]
<?php echo ‘ | ‘.$dyntitle.’ | ‘.bloginfo(‘name’); ?>
[/php]
Смотрим
тот же шаблон отвечает за вывод странцы http://www.sibpress.ru/05.12.2008/related/