Создание страницы WordPress, отличной от стандартной

19 Фев 2012 в 23:30

Столкнулась с тем, что для форума понадобилось страница, отличная от стандартной. Ну, некрасиво смотрится форум, когда с правой стороны еще и сайтбары. Не буду рассказывать о мытарствах и о своих попытках разобраться в кухне WordPressa. Сколько перечитала литературы на эту тему. Но, как оказалось, создать страницу для шаблона WordPress, отличной от стандартной, не так уж и сложно. Моя тема WordPress написана на PHP, поэтому и рассказывать буду как эту страницу сделать в темах, написанных на PHP.

Первым делом, необходимо создать копию файла page.php под другим именем. В моем случае - это  page_forum.php. И закачала этот файл на сервер с сайтом в папку, где лежит и page.php.

Далее через админку WordPressa в Редакторе открыла файл page_forum.php и работать буду уже с ним.

Пример текста страницы page_forum.php до изменения:

<?php get_header(); ?>
<!--page.php-->

<div id="content">
<!--loop-->
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<!--post title-->
<h1 id="post-<?php the_ID(); ?>">
<?php the_title(); ?>
</h1>
<!--post with more link -->
<div class="clear">
<?php the_content('<p class="serif">далее</p>'); ?>
</div>
<!--if you paginate pages-->
<?php link_pages('<p><strong>Страницы:</strong> ', '</p>', 'number'); ?>
<!--end of post and end of loop-->
<?php endwhile; endif; ?>
</div>
<!--page.php end-->

<!--include sidebar-->
<?php include (TEMPLATEPATH . "/sidebar1.php"); ?>
<?php include (TEMPLATEPATH . "/sidebar2.php"); ?>

<!--include footer-->
<?php get_footer(); ?>

Для того, чтобы перестроить этот шаблон без сайтбаров, на моем примере необходимо удалить строки вызова сайтбаров:

<!--include sidebar-->
<?php include (TEMPLATEPATH . "/sidebar1.php"); ?>
<?php include (TEMPLATEPATH . "/sidebar2.php"); ?>

И вначале надо добавить строку /* Template Name: название_шаблона */.

Эта строка скажет WordPress, что у него появилось несколько шаблонов страниц.

Больше для моей темы в этом модуле менять ничего не пришлось.

И текст модуля page_forum.php принимает вид:

<!--Template Name: page_forum--> <?php get_header(); ?> <!--page_forum.php--> <div id="content_forum">
<!--loop-->
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<!--post title-->
<h1 id="post-<?php the_ID(); ?>">
<?php the_title(); ?>
</h1>
<!--post with more link -->
<div class="clear">
<?php the_content('<p class="serif">далее</p>'); ?>
</div>
<!--if you paginate pages-->
<?php link_pages('<p><strong>Страницы:</strong> ', '</p>', 'number'); ?>
<!--end of post and end of loop-->
<?php endwhile; endif; ?>
</div>

<!--page_forum.php end--> <!--include footer--> <?php get_footer(); ?>

Эти два шаблона отличаются только строками вверху и внизу. То есть, вверху добавлены строки для определения нового шаблона. а внизу убраны строки вызова сайтбара.

В тексте нового шаблона есть вызов стиля CSS "#content_forum", который я создала из "#content" из-за того, что в моем случае в стиле "content" определяется ширина поста. То есть, я в свой файл стилей добавила стиль для форума:

#content_forum {
float:left;
width:940px; <!--В моей теме это ширина страницы -->

На этом приготовления для создания новой страницы с новым шаблоном закончены. 

Посмотрите по файлу своих стилей, найдите класс, который определяет стиль страницы, сделайте из него копию, назвав его content_forum, и там подправьте ширину страницы на ту, которая определяется для шаблона Вашего блога.

Далее, необходимо перейти в админку блога и создать новую страницу,  присвоить ей название и справа выбрать шаблон страницы, который Вы только что создали. Заполняем эту страницу текстом, что Вам необходим, и сохраняем.

В основном меню блога появилась страница, внутреннее содержание которой отличается от стандартной страницы шаблона WordPress.

Комментарии приветствуются 🙂

Буду благодарна, если Вы поделитесь этой статьей:

0

Рубрики: 2.2. Настройка WordPress

Обсуждение
Отзыв Елена 23 марта 2012

Здравствуйте мне очень понравилось описание как сделать форум, но разрешите скопировать код для страницы. Или скиньте мне на почту. Очень буду вам благодарна. А так я все установила, но сайдбар не знаю как убрать.

[Ответить]

Valentina Ответил(а):

Елена, копию статьи я Вам выслала на эл. адрес.
А сегодня в самой статье я подсветила голубым цветом отличие шаблонов: оригинала и результирующего.

[Ответить]

Отзыв wasik 28 октября 2012

мне кажется вы забыли упомянуть о файле index.php.

[Ответить]

Valentina Ответил(а):

Василий! Ничего я не забыла! index.php здесь ни при чем! В моем случае!

[Ответить]

Отзыв wasik 29 октября 2012

согласен, я дико извиняюсь. невнимательно прочитал. вы воспользовались не традиционным путем создания страницы.
.

[Ответить]

Отзыв wasik 29 октября 2012

кстати, index. php действительно не причем. за вывод страниц отвечает page. php

[Ответить]

Ваш отзыв