Делаем статический сайт! Шаблоны страниц
Среда, 16 августа 2006 г.
Просмотров: 4585
Подписаться на комментарии по RSS
Объявление
Если вы еще не установили для себя блог-клиент для 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: Название шаблона
- */
- ?>
Теперь, при редактировании страницы через админ-панель в выпадающем списке "Шаблон страницы", вы можете выбрать нужный.



Комментариев: 10
Установлен Ваш wordPress 2.04 win1251. Скачал пример, скопировал в папку шаблонов. На странице с шаблонами он есть. В списке шаблонов для статических страниц он не появился. Куда копать?
Шаблон для статических страниц вы дожны сделать сами
и поместить в каталог шаблона сайта.
в каталог шаблона сайта
Вот этого я и не догнал, спасибо
А как совместить статический сайт с динамическим?
Мне не нравиться, что сайт загружает сразу все новостные статьи и статьи других категорий – повышение рождаемости, снижение смертности и т.д. я хочу, чтобы сайт загружался с строго определённой страницы. Как это сделать???
Создайте файл home.php и укажите в нем все необходимые условия.
Здравствуйте!
Максим, к вопросу о заглавной странице, скажите, например у меня некая страница "X" должна грузиться заглавной, а не блог, может сразу в индексном файле шаблона что-то необходимо прописать?
Ставите плагин. После этого в настройках нужной страницы (постоянной)прописываете короткую ссылку «home».
Просто супер. Огромное спасибо автору сайта за очень ценные материалы!
Спасибо-спасибо-спасибо. :mrgreen:
А нельзя ли рассказать как к сайту на вордпресе, например к этому можно прикрутить ЖЖ?
ЖЖ каким то макарычем можно прикручивать к сайтам, у ЖЖ такая опция есть, но как это сделать для Wordpress?
Слово автору, если вы разбираетесь в вопросе.
Подскажите пожалуйста.
Подскажите, как сделать статический сайт, но так, чтобы все функции динамического сайта распространялись на статические страницы,
т.е. облако тегов, поиск по сайту, или как из динамических страниц сделать статичный сайт с иерархическим меню :smile:.
Заранее Спасибо.