Как мне представить «куски» контента в Wordpress?


10

Я только когда-либо использовал WordPress как самостоятельную платформу для блогов - до сих пор. У меня есть требование использовать его для очень простой CMS, которая будет состоять из ~ 10 страниц, большинство из которых будет статическим, периодически обновляется. Мне понадобится возможность загружать документы, вставлять изображения, редактировать копии с помощью текстового редактора - почти все стандартные функции WordPress.

Однако у меня возникают трудности с редактированием отдельных разделов на странице, в частности, просто зная, с чего начать. «Обычная» CMS традиционно делит страницу на отдельные разделы и позволяет мне редактировать любой из этих разделов, либо путем непосредственного редактирования содержимого, либо путем включения общего содержимого в этом месте. Я не могу узнать, как это сделать с помощью WordPress.

Можно ли «растянуть» модель страницы, чтобы страница фактически была просто порцией контента, она включалась определенной страницей / шаблоном и как-то защищалась от непосредственного просмотра (удаление ее из навигационных меню, Начните).

Любые указатели на то, с чего начать?

Обновить

Чтобы уточнить, представьте стандартный пост в блоге WordPress. Притворись, что это статичный кусок контента. Предположим, вы хотели, чтобы редактор мог изменить только первый абзац этого поста. Теперь,

  • должен ли статический контент на этой странице быть в сообщении, странице, шаблоне или чем-то еще?
  • должен ли редактируемый контент быть страницей ... или чем-то еще?

Например:

<h1>About us</h1>

<p>Example.com is a company specialising in examples, demonstrations,
and canonical stuff.</p>

Если я хочу, чтобы этот абзац был редактируемым, возможно, мне нужно что-то вроде:

<h1>About us</h1>

<p><?php insert_page('name-of-content-chunk'); ?></p>

Обновление 2

Хорошо, после долгих исследований, проб и ошибок я включил следующее:

  1. Wordpress не настроен так, чтобы легко копировать классическую CMS, особенно в том, что касается нескольких частей контента на одной странице.
  2. Эту модель можно подражать, более или менее, используя пользовательские сообщения (см. Ниже)
  3. Страницы почти почти предлагают возможность сделать это, однако:
    • Плагин требуется только для включения страницы
    • Страницы не кажутся такими же гибкими, как посты - например, нет пользовательских типов страниц

Метод, который я использовал, используя пользовательские типы сообщений, в целом выглядит следующим образом:

  1. Страница представляет собой «страницу» с пользовательским шаблоном - назовите его «mypage.php»
  2. Этот шаблон содержит следующее:
    <div id = "header">
      <? PHP
        query_posts (array ('name' => 'foo', 'post_type' => 'header-text'));
        get_template_part ( 'заголовок-текст');
      ?>
    </ DIV>
    
    <div id = "content">
      <p> Статическая копия в шаблоне, которая может
      изменяться только администратором сайта. </ p>
    
      <? PHP
        query_posts (массив ('name' => 'bar', 'post_type' => 'image'));
        get_template_part ( 'изображения');
      ?>
    </ DIV>
    

Имеет ли это смысл для кого- то там? :-)


WordPress вопросы прекрасно здесь, если они не слишком углубляются в программирование.
Тим Пост

Ответы:


3

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


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

Также было бы целесообразно убедиться, что вы знакомы с пользовательскими таксономиями и с тем, как они работают с пользовательскими типами записей.
Трэвис Норткатт

1

Если я правильно понял, вы хотите иметь разные макеты для разных страниц. Вы можете добиться этого либо с помощью собственного шаблона для каждой страницы сайта, либо с помощью одной пользовательской страницы с различными условиями.
Первый вариант см. В разделе «Кодекс WordPress» о страницах пользовательских шаблонов: 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), но вы все равно хотите изменить его, затем добавьте куски в шаблон. В противном случае поместите это на странице и все.

и если я хочу, чтобы эти куски были WYSIWYG-редактируемыми?
Бобби Джек,


1

Взгляните на плагин, такой как Magic Fields. Он использует собственные поля для внутреннего использования, но интерфейс может иметь расширенный текстовый редактор, раскрывающийся список и т. Д.

Это позволяет вам определять элементы контента, их типы и (для выбора) их значения. Затем ваша тема может отобразить его.

Альтернативой было бы определить область плагина и решить, какой плагин будет там. Это менее гибко, так как по-прежнему не допускает две страницы / публикации определенных частей контента.


1

Лучший плагин для безболезненного добавления пользовательских областей содержимого, помимо заголовка и содержимого, - плагин «Больше полей».

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.