Выпуск 16. Сервис блогов. Единый файл шаблона
Сервис блогов wBloger.com
Запустил новый сервис блогов wBloger.com. Рассчитан он на тех, кто не может или не желает заниматься техническими вопросами, начиная от установки и настройки WordPress и заканчивая хостингом и регистрацией доменного имени. То есть все заботы о техническом обеспечении вашего блога возьмет на себя этот сервис.
Полный анонс доступен на сайте сервиса, там же вы найдете описания работы, бесплатные адреса и т.д.
Карта сайта от Google.com
После предыдущего выпуска рассылки, пришло много комментариев, в одном из них была ссылка на генератор сайта для Google Sitemaps. Суть Google Sitemaps в том, что вы отдаете гуглу карту сайта, он её сканирует и анализирует, что по-идее должно позитивно сказаться на поиске.
Для генерации такого файла и предназначен плагин Google Sitemap Generator. Суть его очень проста: скачали, активировали, зашли в настройки и нажали кнопку для создания файла sitemap.xml (он дожен быть в корне сайта).
Если у вас на хостинге стоит ограничения на создание файлов и смену их атрибутов, то сделайте пустые файлы sitemap.xml и sitemap.xml.gz и закачайте их по FTP. После этого выставьте для них атрибуты 666.
Дальше идем в гугл на страницу Google Sitemaps. При этом вы должны уже иметь учетную запись Google, то есть быть зарегистрированным. Дальше просто: добавляете сайт и указываете путь до только что созданого файла sitemap.xml.
Гугл может потребовать доказательства, что добавленный сайт действительно ваш. Для этого нужно будет на своем сайте разместить пустой файл с предложенным именем.
После какого-то времени появится статистика, анализ, диагностика и т.д., то есть те инструменты, которые помогут вам оценить свой сайт.
Единый файл шаблона
Приступаем к сегодняшней теме рассылки.
Вы уже знаете, что файлы в шаблоне выполняют различную роль. Например, single.php используется для вывода одиночных сообщений. Файл page.php - для вывода статичных страниц и т.д. На практике получается, что код в этих файлах во многом дублируется. Это происходит из-за того, что обычно используется одно оформление и одна структура HTML. В этом случае различия носят очень небольшой характер.
Например, в single.php нет смысла указывать ссылку в заголовке записи, поскольку она будет ссылаться на текущую страницу. В page.php нет смысла указывать рубрику, поскольку она всегда равна по-умолчанию.
Правда, это только в том случае, если вы используете стандартные средства. При использовании WP-CLIENT, для постоянных страниц можно указывать любую рубрику.
В общем, если вы занимаетесь программированием шаблонов для WordPress, то неизбежно придете к мысли, каким-то образом это всё объединить и исключить избыточное дублирование.
Главный файл
В пятом номере рассылки мы уже рассматривали иерархию файлов в шаблоне. Нетрудно заметить, что во всех случах используется index.php. На нём и остановимся.
Функции
Для определения типа выводимой страницы, WordPress предоставляет в наше распоряжение функции вида "is_..."
is_home(); is_page(); is_single(); is_page(); и т.д.
Полный список доступен по адресу: http://codex.wordpress.org/Conditional_Tags
Алгоритм
Для новичков PHP наверное проще будет использовать цельные блоки кода для вывода конкретной страницы, например так:
<?php if (is_single()) : ?> код только для single <?php endif; ?> <?php if (is_page()) : ?> код только для page <?php endif; ?>
То есть для вывода статичных страниц используется один блок кода, для сообщений другой и т.д. При таком подходе проще не запутаться, но это всё-равно не избавляет нас от избыточного дублирования.
Для более "продвинутых" лучше использовать проверку типа страницы "точечно". Например, при отображении полных текстов нет смысла выводить заголовок в ссылке. То есть нужно проверять условие is_single и is_page:
<h1 class="storytitle"><?php
if (!is_single() && !is_page() ) {
echo '<a href="';
the_permalink() ;
echo '">';
};
the_title();
if ( !is_single() && !is_page() ) echo '</a>';
?>
</h1>
Код простой. Проверяем условия, что это не page (постоянная страница) или не single (обычное сообщение) и выводим ссылку на пермалинк (постоянная ссылка). Если же это постоянная страница или сообщение, то ссылка не выводится.
Для исключения вывода рубрики для постоянных страниц можно использовать такой код:
<?php
if (!is_page()) the_category('. ');
?>
Для того, чтобы отобразить результаты поиска можно попробовать добавить такой код:
<?php
if (is_search()) {
echo '<h1 class="search">РЕЗУЛЬТАТЫ ПОИСКА: ' . $s . '</h1>';
}
?>
Понятно, что код может несколько отличаться в зависимости от оформления, но думаю, что идея понятна
.
Постоянная ссылка: http://maxsite.org/?p=108
Версия для печати
