В WordPress можно создавать страницы (pages) или записи (posts). Когда вы пишете обычную запись в блог - вы создаёте запись. Записи автоматически появляются на главной странице в обратном хронологическом порядке.
Страницы же предназначены для такого содержимого как "Обо мне", "Контактная информация" и тому подобное. Страницы находятся вне нормальной хронологической последовательности записей и часто используются для нечувствительной к хронологии информации - той, которая всегда востребована. С помощью страниц можно организовать и управлять любым количеством содержимого.
Также можно привести такие примеры как страницы об авторском праве, лицензионные соглашения, правила использования, информации о сайте. Кстати, хорошим правилом является наличие страницы с информацией о сайте или компании и/или страницы с контактными данными. Вот один из советов от Lorelle (на английском языке).
В целом, страницы очень похожи на записи - и те и другие имеют название и содержимое и могут использовать шаблоны представлений (Presentation Templates) для сохранения целостного вида сайта. Однако страницы имеют несколько ключевых отличий от записей.
О страницах коротко
Чем страницы являются и что могут:
Страницы являются контейнером для содержимого, которое не зависит от времени.
Страницы могут быть организованы в другие страницы, а также Подстраницы.
Страницы могут использовать различные шаблоны, которые могут включать в себя файлы шаблонов, метки шаблона (Template Tags) и код PHP.
Чем страницы НЕ являются и что НЕ могут:
Страницы - не записи. Они не проходят циклически через главную страницу. Примечание: Включать записи в страницы можно с помощью модуля Inline Posts Plugin.
Страницы - не пункты меню, даже если список страниц выводится на месте навигации. Для создания полноценного навигационного меню существует отдельный механизм.
Страницы не могут быть связаны с рубриками и метками. Организационная структура опирается только на иерархию.
Страницы - это не файлы. Они сохраняются в базе данных точно так же, как записи.
Хотя в шаблон страницы можно добавить код PHP, в саму страницу нельзя добавить код так, чтобы при этом он ещё и работал. Примечание: Этого можно достичь, используя модуль, работающий с PHP, такой как Exec-PHP или RunPHP
Создание страниц
Для того чтобы создать страницу войдите в Wordpress с достаточными привилегиями для создания статей. Выберите Administration > Pages > Add New для того чтобы начать работу с новой страницей.
Изменение URL или слага (Slug) страниц
С версии 2.5 смена URL страниц стала менее интуитивной. Если у вас включены пермалинки (Permalinks) и вы выбрали настройку Day and Name(Нажмите Settings и в открывшемся списке Permalinks), то пермалинк автоматически покажется под названием записи, когда вы начнёте печатать в теле записи (не только в заголовке).
Несмотря на то, что вы можете выбрать несколько разных настроек пермалинков или вообще их не задействовать, для того чтобы редактировать URL страницы, вы должны сделать следующее:
Создать страницу с помощью Write > Page.
Опубликовать её, нажав Publish.
Перейти в Manage > Pages.
Нажать Edit рядом со страницей.
Посмотреть на пермалинк под заголовком и нажать Edit, чтобы его поменять.
Таким образом, если у вас не включено использование пермалинков, вы должны опубликовать ваши страницы перед тем как устанавливать URL.
Вывод страниц на сайте
WordPress способен автоматически создавать список страниц сайта, например в боковой колонке, используя метку шаблона называемую wp_list_pages(). Прочтите wp_list_pages для более подробной информации, в том числе как:
Сортировать список страниц. Полная настройка порядка вывода описана в секции "Page Order" административной панели Write > Page.
Управлять отображением страниц, то есть выводить ли все страницы или некоторые подстраницы.
Определять насколько глубоко список уходит в иерархию страниц.
Естественно, вы можете определять ссылки на страницы вручную используя HTML-ссылки. Например, если вы хотите вывести страницу об авторских правах в "подвале", ссылка может быть такой:
Если пермалинкиНЕ настроены
Примечание: Файл .htaccess должен быть доступен для записи для страницы пермалинков, иначе каждый раз, когда вы создаёте новую страницу, вам необходимо будет править .htaccess вручную.
Структурирование страниц
Так же как в рубриках могут быть подрубрики, в страницах могут содержаться подстраницы (или дочерние страницы, если так удобнее), вместе создавая иерархию страниц.
Например, предположим вы создаёте сайт для продавца турпутёвок и хотели бы иметь отдельную страницу для каждого континента и страны, куда могут продаваться путёвки. Вы можете начать с создания страницы "Африка" на которой будет общее описание о путешествии на континент. Затем вы создаёте страницы, вложенные в эту, то есть подстраницы, со странами "Лесото", "Того", "Камерун" и "Свазиленд". Затем в таком же ключе вы создаёте страницу "Южная Америка" с подстраницами "Бразилия", "Аргентина" и "Чили". И вот что получится:
Африка
Камерун
Лесото
Свазиленд
Того
Южная Америка
Аргентина
Бразилия
Чили
Для того, чтобы начать, перейдите в Administration > Write > Write Page
, в верхнем правом углу панели и нажмите выпадающий список "Page Parent". Этот список содержит перечень всех созданных страниц. Для преобразования текущей страницы в подстраницу, или наоборот, для преобразования в родительскую страницу выберите необходимый пункт из выпадающего меню. Текущая страница станет дочерней по отношению к выбранной.
Когда страницы выводятся, все дочерние страницы будут располагаться непосредственно под родительскими. Пермалинки при этом также будут отражать иерархическую структуру этой страницы.
В нашем примере для страницы "Камерун" пермалинк будет такой:
http://example.com/africa/cameroon/
Шаблоны страниц
Отдельные страницы могут использовать собственный шаблон страницы (файл-шаблон PHP, например, snarfer.php) который можно включить в создаваемую тему (см. ниже Создание собственных шаблонов страниц). Вновь созданный шаблон будет перекрывать шаблон по умолчанию page.php.
WordPress может быть настроен на использование разных шаблонов для разных страниц. Внизу административной панели Write > Page (или на боковой панели - зависит от версии) имеется выпадающее меню "Page Template", в котором можно выбрать шаблон, используемый данной страницей.
Примечание: Чтобы выбор шаблона работал необходимо наличие хотя бы одного собственноручно созданного шаблона для данной темы (см. ниже Создание собственных шаблонов страниц). Если же все условия выполнены, но выбора шаблона не видно, попробуйте вновь активировать текущую тему.
Шаблоны встроенной темы по умолчанию
Встроенная тема по умолчанию содержит три шаблона:
page.php - шаблон страницы по умолчанию: отображает содержимое страницы
archives.php - игнорирует содержимое и вместо него показывает список архивов по месяцам и рубрикам.
links.php - также игнорирует содержимое и вместо него показывает ссылки, используя wp_list_bookmarks().
Какой шаблон используется для показа отдельных страниц?
WordPress просматривает несколько файлов в активной теме. Первый найденный будет использован для показа любой страницы. WordPress просматривает файлы в следующем порядке:
Выбраннный для данной страницы шаблон.
page.php
index.php
Создание собственных шаблонов страниц
Файлы, определяющие шаблоны, находятся в папке с темой. Для создания собственного шаблона нужно создать файл. Итак, для примера, назовём наш новый шаблон snarfer.php. В первых строчках файла напишем следующее:
<?php
/*
Template Name: Snarfer
*/
?>
Приведённый код определяет что файл snarfer.php - шаблон "Snarfer" (естественно, вы можете переименовать "Snarfer" во что угодно, только не запутайтесь). Это имя появится в редакторе тем со ссылкой на соответствующий файл.
Файл можно назвать как угодно с расширением .php (об именах, которые нельзя использовать см. в reserved Theme filenames; это специальные имена, зарезервированные системой для внутреннего использования).
Всё что вы напишете ниже - зависит от вашего желания и фантазии. Остаток кода будет управлять выводом страниц, которые используют наш шаблон "Snarfer". См. Теги шаблонов, где содержатся описания для различных функций вывода. Для удобства при создании своего шаблона можно воспользоваться уже существующим, скопировав его, например, из page.php или index.php в snarfer.php и затем оформив заголовок, как мы это сделали выше. В таком случается останется только подправить код HTML и PHP, вместо того, чтобы набирать всё это "с нуля".
Примеры приведены ниже. С того момента, как вы создали шаблон страницы и поместили его в папку с темой он становится доступным для выбора во время создания или правки страницы.
Примечание: когда страница создаётся или правится, настройка шаблона не появляется пока не будет создан как минимум один шаблон, как описано выше.
Примеры страниц и шаблонов
Ниже приводится список примеров. Вы можете добавить свои.
Архивы с содержимым
Шаблон, который сначала показывает вверху содержимое страницы, а ниже - список архивов по месяцам и рубрикам. Он работает с темой по умолчанию (Kubrick), но с незначительными доработками подойдёт для других тем.
Сохраните код ниже в arc-cont.php:
<?php
/*
Template Name: Archives with Content
*/
?>
<?php get_header(); ?>
<div id="content" class="widecolumn">
<?php if (have_posts()) : while (have_posts()) : the_post();?>
<div class="post">
<h2 id="post-<?php the_ID(); ?>"><?php the_title();?></h2>
<div class="entrytext">
<?php the_content('<p class="serif">Read the rest of this page »</p>'); ?>
</div>
</div>
<?php endwhile; endif; ?>
<?php edit_post_link('Edit this entry.', '<p>', '</p>'); ?>
</div>
<div id="main">
<?php include (TEMPLATEPATH . '/searchform.php'); ?>
<h2>Archives by Month:</h2>
<ul>
<?php wp_get_archives('type=monthly'); ?>
</ul>
<h2>Archives by Subject:</h2>
<ul>
<?php wp_list_cats(); ?>
</ul>
</div>
<?php get_footer(); ?>
Страница с записями
Шаблон показывает записи определённой рубрики в зависимости от того, какая страница показывается. Он работает с темой по умолчанию (Kubrick), но с незначительными доработками подойдёт для других тем.
Сохраните код ниже в pageofposts.php:
<?php
/*
Template Name: PageOfPosts
*/
get_header(); ?>
<div id="content" class="narrowcolumn">
<?php
// page id 21 will get category ID 12 posts, page 16 will get category 32 posts, page 28 will get category 17 posts
if (is_page('21') ) {
$cat = array(12);
} elseif ( is_page('16') ) {
$cat = array(32);
} elseif ( is_page('28') ) {
$cat = array(17);
} else {
$cat = '';
}
$showposts = -1; // -1 shows all posts
$do_not_show_stickies = 1; // 0 to show stickies
$args=array(
'category__in' => $cat,
'showposts' => $showposts,
'caller_get_posts' => $do_not_show_stickies
);
$my_query = new WP_Query($args);
?>
<?php if( $my_query->have_posts() ) : ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<?php
//necessary to show the tags
global $wp_query;
$wp_query->in_the_loop = true;
?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
<small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small>
<div class="entry">
<?php the_content('Read the rest of this entry »'); ?>
</div>
<p class="postmetadata"><?php the_tags('Tags: ', ', ', '<br />'); ?> Posted in <?php the_category(', ') ?>