Как представить 'части' контента в WordPress?
До сих пор я использовал WordPress только как самодостаточную платформу для ведения блога. Теперь мне нужно применить его в качестве простой CMS для примерно 10 страниц, большинство из которых будет статическим контентом, обновляемым периодически. Мне потребуется возможность загружать документы, вставлять изображения, редактировать текст с помощью визуального редактора - в общем, все стандартные функции WordPress.
Однако у меня возникли сложности с редактированием отдельных секций на странице - в частности, я даже не знаю, с чего начать. В "обычной" CMS страница традиционно разбивается на отдельные секции, и можно редактировать любую из них, либо напрямую изменяя контент, либо включая в это место общий контент. Я не могу понять, как сделать это в WordPress.
Возможно ли "расширить" модель Page так, чтобы Page фактически был просто частью контента, включался конкретной страницей/шаблоном и был - как-то - защищен от прямого просмотра (исключение из навигационных меню было бы началом).
Есть ли подсказки, с чего начать?
Обновление
Для уточнения представьте стандартную запись блога WordPress. Представьте, что это статический контент. Допустим, вам нужно, чтобы редактор мог изменить только первый абзац этой записи. Теперь:
- должен ли статический контент на странице находиться в Записи, Странице, Шаблоне или чем-то еще?
- должен ли редактируемый контент быть Страницей, ... или чем-то другим?
Например:
<h1>О нас</h1>
<p>Example.com - компания, специализирующаяся на примерах, демонстрациях
и канонических вещах.</p>
Если я хочу, чтобы этот абзац был редактируемым, предположительно мне нужно что-то вроде:
<h1>О нас</h1>
<p><?php insert_page('name-of-content-chunk'); ?></p>
Обновление 2
После долгих исследований, проб и ошибок я пришел к следующим выводам:
- WordPress не настроен для простого повторения классической CMS, особенно в плане размещения нескольких частей контента на одной странице.
- Эту модель можно имитировать, более или менее, используя пользовательские типы записей (см. ниже)
- Страницы почти позволяют это сделать, однако:
- Для включения страницы требуется плагин
- Страницы не такие гибкие, как записи - например, нет пользовательских типов страниц
Метод, который я использовал с пользовательскими типами записей, в целом следующий:
- Страница является 'Page' с пользовательским шаблоном - назовем его 'mypage.php'
- Этот шаблон содержит следующее:
<div id="header"> <?php query_posts(array('name' => 'foo', 'post_type' => 'header-text')); get_template_part('header-text'); ?> </div> <div id="content"> <p>Некоторый статический текст в шаблоне, который может быть изменен только администратором сайта.</p> <?php query_posts(array('name' => 'bar', 'post_type' => 'image')); get_template_part('image'); ?> </div>
Кто-нибудь понимает, что я имею в виду? :-)

Как упомянул tnorthcutt, вы можете использовать пользовательские типы записей. Однако вам также стоит обратить внимание на произвольные поля, которые позволят вам указывать фрагменты динамических пользовательских данных, которые вы хотите связать с каждой страницей. Вот руководство от Smashing Magazine по произвольным полям, учебник от Nettuts (и видео), а также список других руководств.

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

Если я правильно понял, вы хотите иметь разные макеты для разных страниц. Этого можно достичь двумя способами: создав индивидуальный шаблон для каждой страницы сайта или используя единый кастомный шаблон с различными условиями.
Для первого варианта ознакомьтесь с разделом WordPress Codex о создании собственных шаблонов страниц: http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates
Для второго варианта изучите этот туториал: http://www.darrenhoyt.com/2007/12/26/multiple-wordpress-page-layouts-in-one-single-template/
Затем вы можете перенести эти "блоки" в разные PHP-файлы, которые подключаются на конкретных страницах.

Хм... Я посмотрю ссылки, но не уверен, что правильно объяснил свою проблему. По сути, мне нужно работать с максимально 'атомарными' частями контента; то, что в любой другой CMS, с которой я работал, делается очень просто. Я обновил вопрос, чтобы попытаться объяснить его понятнее.

Если вам нужен статический контент (и под статическим я подразумеваю чистый HTML, не загружаемый из базы данных — в отличие от записей WordPress), но вы всё равно хотите его редактировать, то добавьте эти блоки в шаблон. В противном случае просто разместите его на странице, и всё.

Я думаю, ваш лучший вариант — использовать пользовательские типы записей.

Ознакомьтесь с такими плагинами, как Magic Fields. Он использует пользовательские поля внутри, но интерфейс может иметь богатый текстовый редактор, выпадающие списки и т.д.
Это позволяет вам определять элементы контента, их типы и (для выбора) их значения. Затем ваша тема может отображать это.
Альтернативой может быть определение области для плагина и выбор, какой плагин будет там размещен. Однако это менее гибко, так как все равно не позволяет использовать два специфичных для страницы/записи элемента контента.
