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();
раз снежинкадва снежинкатри снежинкаа я четвертую сорву!отличная снежинка (голосов: 11)
UTW_ShowTagsForCurrentPost("commalist"); Ключевые темы: No Tags
show_post_count(); Просмотров: 19534

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-код прямо на страницу, вот этот плагин.

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

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

  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 живой.

  11. http://gamecheats98.livejournal.com/ Says:

    Fantastic site you have here but I was wanting
    to know if you knew of any community forums that cover the same topics discussed here?
    I’d really like to be a part of online community where I can get responses from other experienced people that share the same interest.
    If you have any suggestions, please let me know. Kudos!

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

show_manual_subscription_form();

Subscribe without commenting

endwhile;