single.php

include (TEMPLATEPATH . '/searchform.php');
if (have_posts()) : while (have_posts()) : the_post();
the_time('F j, Y'); февраль 17, 2006
the_author(); Yantar
the_category(', '); wordpress, для начинающих
the_ratings();
раз снежинкадва снежинкатри снежинкаа я четвертую сорву!отличная снежинка (голосов: 10)
UTW_ShowTagsForCurrentPost("commalist"); Ключевые темы: No Tags
show_post_count(); Просмотров: 5424

the_content();

В wordpress есть не только Posts (обычная блоговая запись), но и Pages - статические страницы.
Pages применяются для разной информации, которая должна быть на виду постоянно. Классический пример - страница "Об авторе". Создается она весьма просто: в админке выбираем Write, а там в подменю Write Page. И фигачим туда всю информацию про породу домашнего питомца и любимый сериал. В большинстве вордпрессовских тем ссылки на страницы красиво висят где-нибудь сразу под шапкой. Но можно такую ссылку и в сайдбар вставить.
Бывают случаи посложнее. Вот здесь я о таком примере писала. Или, если блог ведет столько авторов, что в сайдбар они уже никак не вмещаются, то можно создать отдельную страницу, где эти авторы будут перечисляться. Но это уже не так просто, ведь, как написано в Кодексе, вписанный непосредственно в содержимое страницы php-код исполняться не будет, необходимо создать шаблон для этой страницы (you can put Template Tags and PHP code into a Page Template, you cannot put these into the content of a Page and expect them to run).
Создать такой шаблон/Page Template, чтобы вставить в страницу динамическую информацию (мы ведь не хотим каждого нового автора забивать в наш список ручками?), совсем нетрудно (если честно, вся эта запись является вольным пересказом по-русски соответсвующего раздела Кодекса).
Создаем новый файл, называем его почти как угодно (список зарезервированных названий может помочь), не забываем про расширение .php. В самом начале файла необходимо написать

<?php
/*
Template Name: Листинг авторов
*/
?>

А потом уже пихать в этот файл свой скрипт:

<?php get_header(); ?>
<div id="content" class="widecolumn">
  <h3>Авторы нашего блога:</h3>
  <?php wp_list_authors();?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Сохраняем этот файл в папке с активной темой нашего блога. Идем в админке опять в раздел Write Page и выбираем нужный нам Page Template (в данном случае "Листинг авторов"). Все, на странице ничего писать не надо.

UPDATE: А меж тем, Антон Палыч Меркуров советует для тех, кому нужно вставить PHP-код прямо на страницу, вот этот плагин.

Насколько этот текст оказался полезным?
раз снежинкадва снежинкатри снежинкаа я четвертую сорву!отличная снежинка (голосов: 10)
comments_template();

Комментарии (10) к записи «Зачем нужны страницы?»

  1. Автоматизация управления компаниями Says:

    “Идем в админке опять в раздел Write Page и выбираем нужный нам Page Template ”

    Не могу найти как в разделе Write Page выбрать нужный Page Template.
    Может кто подскажет?

  2. nachberlin Says:

    А вы его создали и назвали?
    тогда в разделе Write Page справа есть голубые вкладки, средняя и есть Page Template

  3. Автоматизация управления компаниями Says:

    У меня нет вкладок. Может это от версии Wordpress зависит (у меня 1.5.2
    )?

  4. nachberlin Says:

    а, да, наверное, я-то про 2.0 говорю. с 1.5 практически не имела дела. :-(
    может, стоит проапгрейдиться? :-)

  5. MAX Says:

    У вас написано, что «как написано в Кодексе, на страницах не должно быть никакого php-кода». Но в кодексе как раз написано обратное:

    Pages can use different Page Templates which can include Template Files, Template Tags and other PHP code. =
    Страницы могут использовать другие cтраничные Шаблоны, которые могут включить файлы шаблона, тэги шаблона и другой код PHP.

    Ну и дальше по тексту:

    * Хотя Вы можете поместить теги шаблона и код PHP в страничный шаблон, Вы не можете поместить их в содержимое страницы, чтобы они запустились. (Примечание: Вы можете достичь это используя PHP-плагины например, RunPHP (http://dev.wp-plugins.org/wiki/RunPHP).)…

  6. Anonymous Says:

    […]

  7. nachberlin Says:

    2Max: я имела ввиду как раз то самое, что у Вас под звездочкой: непосредственно в контент страницы нельзя вставить исполняемый код, а вот в темплэйт можно - и о том, как это сделать, здесь и рассказываю.
    Впрочем, немножко переформулировала свою запись.

  8. T-Sugar Says:

    Совсем замучался, видимо слишком простой вопрос, как для публикации на кодексе :) Я запускаю loop в шаблоне другой страницы. В результате, loop выводит мне только тот текст, который на эту страницу вводился при write page, и не более. Остальные посты loop’ом просто не видны. Может есть какая-то область определения, в рамках которой loop работает, потому как все is_home() и is_category() я из него убрал, но не помогает.

  9. nachberlin Says:

    вообще я неоднократно встречала в Кодексе, что не надо ничего писать при write page, если делаешь ее по шаблону (тут могу исказить информацию, но помню именно это). Попробуйте убрать написанный текст , оставить только loop.

  10. pakt Says:

    Отличная заметка. Наконец-то прояснилось в голове, как развести между собой плагины на статических страницах.

    Слегка обламывают два момента: ссылка “список зарезервированных названий” приводит на 500 Internal Error, а ссылка “Меркулов” - в защищённую жж-запись. Хорошо ещё, что exec-php живой.

Есть комментарии?

It sounds like SK2 has recently been updated on this blog. But not fully configured. You MUST visit Spam Karma's admin page at least once before letting it filter your comments (chaos may ensue otherwise).
show_manual_subscription_form();

Subscribe without commenting

endwhile;