Делаем статический сайт! Шаблоны страниц
Объявление
Если вы еще не установили для себя блог-клиент для WordPress, то можете сделать это сейчас, поскольку у вас появилась возможность бесплатно протестировать его возможности. Для этих целей я специально создал Демо-блог. Установив программу, вы бесплатно получаете ключ к управлению этого блога. Тестируйте, пробуйте!
Делаем статический сайт!
Предположим, вы хотите сделать всего лишь несколько статических страничек. При этом, вы естественно хотите сохранить возможности редактирования и управления. Ваши действия в этом случае будут следующими.
Первым делом вы должны сделать файл index.php - это будет главная страница сайта. Вы оформляете его по своему желанию.
Если у нас будет использоваться единая навигация, то проще будет её сразу же прописать в файле sidebar.php. Если же вы хотите использовать какие-то различия, то можно будет это делать прямо в тексте в виде html-кода, либо исправляя файл шаблона страницы (об этом чуть позже).
В файле index.php прописываем:
<?php get_sidebar(); ?>
А в файле sidebar.php явно указываем ссылки на другие страницы.
<h3>Навигация</h3>
<p><a href="<?php echo get_settings('siteurl'); ?>/?pagename=about">О сайте</a> |
<a href="<?php echo get_settings('siteurl'); ?>/?pagename=page2">Страница 2</a> |
<a href="<?php echo get_settings('siteurl'); ?>/?pagename=page3">Страница 3</a> |
<a href="<?php echo get_settings('siteurl'); ?>/?pagename=page4">Страница 4</a> |
<a href="<?php echo get_settings('siteurl'); ?>/?pagename=page5">Страница 5</a>
</p>
Обратите внимание на то, как организованны ссылки. В качестве параметра используется pagename - короткое имя страницы: в режиме редактирования у вас доступно поле "Быстрый доступ". То есть для странички о сайте мы укажем "about", ссылки - "links" и т.п.
Можно еще использовать page_id, но на мой взгляд, это не совсем удобно, поскольку вам придется следить за нумерацией записей. В случае её изменения вам нужно будет исправлять и ссылки в навигации.
По-идее у нас должна быть отдельная страничка, которая будет заглавной. Можно, конечно прописать её прямо в index.php, но мы пойдем другим путем
. Мы будет проверять, если пользователь находится на главной, то будем выводить страницу с именем "first".
Проще будет сделать, если взять не короткое имя страницы, а её номер. В этом случае php-код будет совсем простой. Но, поскольку мы решили сделать навигацию именно по коротким именам, то в этом случае придется делать дополнительный запрос к базе данных.
Получается такой код:
<?php
if (is_home()) {
global $wpdb;
$p = $wpdb->get_results("SELECT ID FROM $wpdb->posts
WHERE post_name = 'first'");
if ($p) {
foreach ( $p as $post ) {
$ID = $post->ID;
$post = get_post($ID);
setup_postdata($post);
}
}
?>
... вывод содержимого ...
<?php } ?>
Разберем его:
- В начале проверяем условие, что это действительно главная страница (is_home).
- Дальше получаем доступ к базе данных ($wpdb).
- И выполняем запрос, где в качестве аргумента выступает имя страницы "first". Вы можете изменить имя на любое другое.
- Дальше проверяем был ли запрос успешен?
- Если "да", то получаем результат в виде массива. Чтобы перебрать все его элементы, запускаем цикл foreach.
- В теле цикла получаем номер записи (ID), значение всех полей ($post) и функцией setup_postdata устанавливаем эту запись текущей.
В конце, после вывода содержимого, нужно закрыть скобку первого условия (is_home). Сам же вывод делается "стандартно":
<p><?php the_date() ?> | <?php the_author() ?></p> <h1><?php the_title(); ?></h1> <div class="storycontent"> <?php the_content() ?> </div>
Думаю, что этот код вам понятен: выводим дату, автора и текст записи.
Теперь мы должны сделать шаблон для вывода остальных страниц. Если вы помните, то для вывода постоянных страниц (post), WordPress использует файл post.php. Этим мы и воспользуемся.
Код по сути будет повторять предыдущий вывод, только добавляется условие на проверку существования записи:
<?php if (have_posts()) : the_post() ?>
<p><?php the_date() ?> | <?php the_author() ?></p>
<h1><?php the_title(); ?></h1>
<div class="storycontent">
<?php the_content() ?>
</div>
<?php else: ?>
<p><?php _e('Извините, ничего не найдено...') ?></p>
<?php endif ?>
Разберем строки:
- Проверяем есть ли запись (have_posts)? Если есть, то получаем данные записи the_post.
- Дальше выводим дату и автора.
- После этого заголовок и текст.
- Если же ссылка на страницу была ошибочной, то выведется сообщение об ошибке.
Таким образом всего тремя файлами (style.css, index.php, page.php и sidebar.php) мы сделали полный аналог любого статичного сайта, да еще и умудрились сохранить управление от WordPress
!
Теперь наши действия очень просты. Идем в админ-панель и создаем нужные нам страницы (post) и указываем им короткое имя. Вы можете использовать этот шаблон сайта для быстрого создания любых статических страниц.
Если же кто-нибудь запутается, то на всякий случай я выложил на сайте готовый шаблон с этим примером: staticsite.zip(2 Кб, кодировка WINDOWS-1251).
Использование шаблонов страниц
WordPress позволяет установить для каждой страницы отдельный шаблон. Например мы только что использовали единый шаблон страниц - файл post.php. Однако мы можем сделать сколько угодно таких файлов: например один будет для ссылок, другой для архивов, третий для странички о себе. Причем каждый такой шаблон может иметь своё оформление и свою функциональность.
Делается это очень просто. Например можно сделать копию файла post.php, внести в него необходимые изменения и сохранить под любым другим именем. Чтобы WordPress понял, что это шаблон, нужно в самом начале файла написать:
<?php /* Template Name: Название шаблона */ ?>
Теперь, при редактировании страницы через админ-панель в выпадающем списке "Шаблон страницы", вы можете выбрать нужный.
Постоянная ссылка: http://maxsite.org/?p=87
Версия для печати
