Мой сайт о WordPress и PHP
 
9 июля 2006

Выпуск 5. Сообщения и страницы. Иерархия файлов. HTML

Читали 3940 раз
Рубрика: E-mail рассылка
Навигация: Главная » WordPress » E-mail рассылка

Рассмотрим особенность WordPress - деление документов на сообщения и страницы. Узнаем каким образом WordPress "собирает" страницы сайта из файлов шаблона. Перейдем к базовым понятиям HTML.

С предыдущими выпусками рассылки можно познакомиться в архиве.

Если у вас возникли проблемы при работе с WordPress, то свой вопрос вы можете задать на форуме: forum.maxsite.org

Сообщения и страницы

WordPress позволяет создавать два вида документов на вашем сайте: фиксированные (постоянные) страницы (page) и сообщения (post). Разница между ними в способе публикации: после создания сообщения, оно автоматически будет помещено на главную страницу сайта, в т.н. новостной ленте. Страница же нигде не помещается, вместо этого на нее создается отдельная ссылка.

Постоянные страницы удобно использовать для такой информации, как: "О себе", "Контакты", "О проекте", то есть носящие постоянный характер.

Сообщения же автоматически попадают на главную страницу и публикуются в обратном хронологическом порядке (более новые вверху), то есть в виде "дневника".

Для сообщений (post) вы можете указать любую категорию (рубрику), чего нельзя сделать для страниц. Вместо этого каждая страница (page) может служить "родителем/ребенком" любой другой страницы, что также позволяет создавать любую иерархию.

Небольшое отступление. Поскольку мы уже знаем про деление документов на страницы (page) и сообщения (post), то в дальнейшем, когда я употребляю выражение "страницы сайта", то имеется ввиду все документы сайта, то есть общепринятое значение. Если же мне нужно будет уточнить, что страница это именно page, то я буду дополнительно указывать "страница (page)". Таким образом мы избежим неопределенности.

Для создания страниц (page) и постов (post) в WordPress'е существуют отдельные пункты меню (в админ-панели). Когда вы будете создавать документ, то необходимо сразу определиться будет ли он post или page. Проблема в том, что изменить тип документа после его создания нельзя (разве, что ручным исправлением в самой базе данных).

Кроме всего прочего, страницы (page) могут быть оформлены с помощью дополнительного файла-шаблона (Template Name). То есть вы можете создать файл-шаблон и указать его в создаваемой странице (page).

Иерархия файлов в шаблоне (теме)

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

То есть, когда WordPress начинает формировать страницу, то первым делом он выполняет файл шаблона "home.php" и, если такого нет, то выполняется файл "index.php" (всё в каталоге текущей темы). И так далее. В зависимости от задачи, WordPress использует определенный файл.

Полный список иерархии файлов шаблона публикуется на официальном сайте WordPress'а: codex.wordpress.org

Ниже я привожу последовательность выбора файлов WordPress'ом при отображении различных видов страниц сайта.

Основная (главная) страница сайта:

  • home.php
  • index.php

Сообщение (post)

  • single.php
  • index.php

Постоянная страница (page)

  • Выбранная в настройках при создании страницы (page)
  • page.php
  • index.php

Отображение категорий (рубрик)

  • Для каждой категории можно указать свой файл. В этом случае имя файла должно быть: "category-ID.php", где ID - номер категории, например "category-6.php".
  • category.php
  • archive.php
  • index.php

"Авторские" страницы

  • author.php
  • archive.php
  • index.php

Страницы календаря, архива

  • date.php
  • archive.php
  • index.php

Результаты поиска

  • search.php
  • index.php

"Страница не найдена" (404 Not Found Page)

  • 404.php
  • index.php

Теперь, глядя на файлы шаблона, вы будете знать какой файл за что отвечает.

Дополнительные файлы

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

Например, для того, чтобы отобразить блок меню, нужен файл "sidebar.php", а сам вызов происходит с помощью функции:

<?php get_sidebar(); ?>

Знатоки PHP знают, что подключить любой другой файл шаблона можно с момощью функций include(), require(), readfile() и других. Однако, функции WordPress не только подключают файлы, но и дополнительно обрабатывают события (action), на которые могут "реагировать" плагины (см. предыдущий выпуск рассылки).

Файл header.php ("шапка страницы") вызывается:

<?php get_header(); ?>

Файл footer.php ("подвал страницы") вызывается:

<?php get_footer(); ?>

Далее...

Поскольку мы уже начинаем углубляться технические подробности и я не знаю ваш уровень подготовки, то есть смысл зделать небольшой экскурс в HTML и PHP. Сразу скажу, что это будет краткое описание и основные моменты. Основная цель - это научиться понимать синтаксис. Для того, чтобы углубиться в эти языки, вам нужно будет обратиться к справочной литературе или сответствующим ресурсам Интернет.

Основы HTML

HTML - язык разметки документа. Используя специальные конструкции HTML, можно в простой текст добавить различное оформление и отдельные элементы. Браузер, отображая такой документ, обрабатывает HTML-конструкции и преобразует их в соответствующем визуальном виде.

Существуют несколько версий HTML. Их описание займет много времени, поэтому я сразу отсылаю вас к своей статье "Что нам стоит сайт построить?".

Тэги HTML

Основа HTML - использование тэгов. Тэги это конструкция заключенная в угловые скобки <тэг>. Тэги бывают одиночные и парные. Парные имеют открывающий тэг и закрывающий:

<тэг параметры>содержимое тэга</тэг>

Одиночные, не имеют закрывающего тэга, поэтому имеют другую конструкцию:

<тэг параметры />

То есть дописывается дополнительный слэш (косая черта) в конце.

Тэги могут содержать различные параметры. В этом случае значение параметра должно быть ограниченно кавычками (обычными или одиночными):

<font color="red">содержимое тэга</font>

- в данном примере тэг font имеет парметр color, который равен red

Поведение браузеров

Основная "боль" любого вебмастера - это различная интерпретация HTML-кода разными браузерами. Наиболее капризным и непредсказуемым является MS Internet Explorer. К сожалению этот браузер использует свою, отличную от рекомендаций консорциума W3C, модель поведения, поэтому то что является простым и очевидным для других браузеров, в IE может выглядеть совершенно непредсказуемым. Особенно много "нюансов" возникает при использовании стилевой разметки (CSS). Здесь IE может демонстрировать свою абсолютную "невменяемость" :( .

Из-за этого вебмастер вынужден создавать HTML-код нормальный и отдельно - для IE. Делается это с помощью т.н. хаков - специальных конструкций, которые используют ошибки браузера, это позволяет сделать определенный участок кода видимым только для него.

Существует следующая рекомендация по отладке HTML-страницы: добейтесь нормального отображения в "стандарном" браузере, например FireFox, а уже после приступайте к отладке для IE.

Замечу, что если вы хотите научиться работать с сайтами, то личные предпочтения браузера здесь неуместны. Сайт должен корректно отображаться как минимум в FireFox'е, Opere и IE 6 - поскольку именно эти браузеры составляют 99% всех "движков" браузеров.

Если вы никогда не пользовались FireFox, то на моем сайте найдете описание некоторых плагинов для этого браузера: "Настройка FireFox"

Другие выпуски рассылки

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

1 комментарий к “Выпуск 5. Сообщения и страницы. Иерархия файлов. HTML”

  1. Олег:

    Здравствуйте.
    Подскажите пожалуйста: возможно сделать так чтобы определенные, постоянные (фиксированные) страницы не выводились в шапке (горизонтальном меню)блога, но при этом выводились через виджет в сайдбаре? Если возможно, то как? :lol:

    Спасибо. :roll:


Оставьте комментарий! (Вы согласны с правилами)

 

:mrgreen: :neutral: :twisted: :arrow: :shock: :smile: :???: :cool: :evil: :grin: :idea: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: :!: :?:

При добавлении кода (html, php) заменяйте < на &lt; и > на &gt;.
Внимание: антиспам - зверь! Копируйте своё сообщение перед отправкой. На всякий случай.