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

Февраль 19, 2012

6 комментариев

Столкнулась с тем, что для форума понадобилось страница, отличная от стандартной. Ну, некрасиво смотрится форум, когда с правой стороны еще и сайтбары. Не буду рассказывать о мытарствах и о своих попытках разобраться в кухне 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

6 комментариев к "Создание страницы WordPress, отличной от стандартной"

Елена написал:
23 марта 2012

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

[Ответить]

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

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

[Ответить]

wasik написал:
28 октября 2012

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

[Ответить]

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

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

[Ответить]

wasik написал:
29 октября 2012

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

[Ответить]

wasik написал:
29 октября 2012

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

[Ответить]

Оставить комментарий

Имя : 
Почта : 
Сайт : 
Комментарий :