marjorieroswell
  • 0
Новичок

Как воспроизвести некоторые функции Drupal Views в WordPress?

  • 0

Признаюсь, я все еще думаю в Drupal. (Выбирая между разработкой на WordPress и Drupal, я все же предпочитаю Drupal, потому что еще не разобрался с некоторыми вещами на стороне WordPress.)

Можете ли вы помочь понять, как добиться в WordPress хотя бы некоторых функций представлений, которые я знаю и люблю?

Я вижу, что плагины, которые работают с пользовательскими типами записей, являются WordPress-эквивалентом CCK. Теперь есть ли способ (через пользовательский интерфейс или код): 1. отображать настраиваемые поля в столбцах и строках 2. предоставлять фильтры, то есть создавать раскрывающиеся списки вверху, чтобы конечный пользователь мог выбирать

Вот пример изображения одного открытого поля. http://www.packtpub.com/sites/default/files/Article-Images/drupalviews-article1-timage18.png (из моей книги)

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

Есть один аргумент: если мне так нравится Drupal, я должен его использовать. Но я думаю, что я тоже мог бы быть счастливым пользователем WordPress, если бы я мог понять, как отображать настраиваемые поля и как разрешить конечным пользователям выбирать через открытые фильтры. Любое руководство приветствуется.


ОБНОВИТЬ:

Пока я старательно прорабатываю два ответа. И до сих пор я мог создавать настраиваемые поля и отображать их по одному посту за раз.

Это то, что я добавил в свой файл single.php. (Это несколько запутанно, и я приветствую идеи для улучшения.) Но что мне еще нужно сделать, так это вывести это из контекста single.php, чтобы я мог отображать ВСЕ поля сообщения, а не только текущий идентификатор. (Кроме того, мой текущий css дает.meta_items, отображаемые под неправильным.meta_table_header, если есть пустые поля. Кажется, установка ширины не работает, если элемент пуст, поэтому мне каким-то образом нужно заполнить его пробелом без разрыва.)

Я также установил плагин Custom Field Template: http://wordpress.org/extend/plugins/custom-field-template/ и выяснил, как разделять запятыми результаты выбора нескольких флажков. (Я еще мало играл с шаблоном настраиваемого поля, но чувствую, что он мне понравится.)

 <div id="meta_table">
  <?php 
  $div_meta_row =  '<div class='row'>';
  $div_meta_item ='<div class='meta_item'> ';
  $div_meta_table_header='<div class ='meta_table_header'>';
  $div_end='</div>';

   echo $div_meta_row;
   echo $div_meta_table_header, "Breakfast", $div_end, $div_meta_table_header, "Currently Reading", $div_end, $div_meta_table_header, "Hours of Sleep", $div_end, $div_meta_table_header,'Favorite Fruits', $div_end;
   echo $div_end;

   echo $div_meta_row;
      $meta_values = get_post_meta($post->ID, 'Breakfast', $single);
      echo  $div_meta_item, $meta_values, $div_end;
      $meta_values = get_post_meta($post->ID, 'Currently Reading', $single); 
      echo $div_meta_item, $meta_values, $div_end;
      $meta_values = get_post_meta($post->ID, 'Hours of Sleep', $single);
      echo $div_meta_item, $meta_values, $div_end;
      $meta_values=implode(get_post_meta($post->ID, 'Favorite Fruits', 0), ', ');
      echo $div_meta_item, $meta_values, $div_end;
    echo $div_end;
 ?>  
 </div>

Вот прилагаемая таблица стилей, которую я поместил в header.php.

<style type="text/css">
#meta_table .row {
float:left;
margin:10px 0;
}
#meta_table .row .meta_item, .meta_table_header {
width:120px;
margin-right:10px;
float:left;
}
.meta_table_header {
font-weight:bold;
}
</style>

Как только я получу все поля сообщений для отображения в отдельном URL-адресе, я буду работать над «параметрами пользовательских полей query_posts». Итак, я знаю больше, чем когда впервые задал вопрос. Еще есть пути.

(Drupal Views предлагает мощный пользовательский интерфейс, и пока это почти все кодирование, но я подожду, пока я действительно не разберусь с этим в WordPress, прежде чем делать какие-либо заявления о том, что проще. Я надеюсь, в конце концов, включить пользователя для фильтрации по нескольким настраиваемым полям в WordPress.

Вот как это выглядит на данный момент.

Пока прогресс...

Стремление к чему-то большему, например:

Цель

Share
  1. Читая о модуле Drupal Views, создается впечатление, что это просто визуальный (т.е. выпадающий) конструктор запросов. Это правильно? Если нет… какую функциональность вы пытаетесь создать? Когда я вижу слово «представление», я думаю о дизайне и представлении… но, читая страницу модуля «Представления», это больше похоже на бизнес-логику и доступ к данным… можете ли вы пояснить для пользователей, не использующих Drupal, на сайт?

    • 0
    • Views — это действительно построитель запросов. (Обратите внимание: поскольку «Views» — это имя модуля, я использую единственное число.) Один из модулей-компонентов — views_ui, пользовательский интерфейс для создания представлений (в нижнем регистре). Я не спрашиваю, как создать пользовательский интерфейс для построения запросов в WordPress. (Было бы замечательно иметь его, но то, что я пытаюсь сделать, является более простым). Я просто пытаюсь получить некоторые из основных функций модуля, а именно: отображение настраиваемых полей и предоставление конечным пользователям возможности фильтровать отображение полей по одному или нескольким настраиваемым полям с помощью раскрывающихся списков. Вот еще один пример: bit.ly/aSBqrt

      • 0
    • Судя по всему, вам может быть лучше использовать настраиваемые таксономии (а не настраиваемые метаполя) и заполнять каждый раскрывающийся список доступными элементами в этой таксономии. Вы потеряете записи произвольной формы (например, часы сна в вашем примере), но поддержка перечисления/сортировки на основе таксономии намного лучше, чем у пользовательской мета.

      • 0
    • Спасибо за этот комментарий/идею. Когда вы говорите о пользовательских таксономиях, вы имеете в виду категории и/или теги, или вы имеете в виду что-то еще? С чего начать?

      • 0
    • Теги/категории — это таксономии, но вы также можете создавать свои собственные системы таксономии. Вот отличный учебник, демонстрирующий использование пользовательских таксономий для создания базы данных фильмов. В Кодексе также есть дополнительная информация.

      • 0
    • Это очень полезное начало. Теперь о второй части вопроса: как получить раскрывающийся фильтр над всеми сообщениями или более одного раскрывающегося списка, чтобы конечные пользователи могли использовать несколько настраиваемых полей для ограничения «просмотра?» Кстати, мой новый любимый сайт (помимо этого) — phprex.com. Например, вот определение функции для get_post_meta: phpxref.com/xref/wordpress/wp-includes/… Быстрая гиперссылка оттуда на get_metadata точно показывает, что происходит. Теперь я смогу отображать настраиваемые поля. А как насчет части «открытых фильтров»? (фильтр выпадающих списков)

      • 0
    • Можете ли вы хотя бы объяснить , какие функции представлений он предоставляет?

      • 0
    1. отображать настраиваемые поля в столбцах и строках: get_post_meta для отображения их в вашей теме и add_meta_box для настройки администратора

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

    Выпадающее поле в форме вверху:

    <select name="custom_field" id="custom_field">
        <option value="value1">Value 1</option>
        <option value="value2">Value 2</option>
    </select>
    

    Соответствующий пользовательский запрос:

    $value = $_POST['custom_field'];
    query_posts("meta_key=custom_field&meta_value=$value");
    

    Вы можете посмотреть The Loop и get_posts для справки.

    Надеюсь это поможет.

    • 0
  2. лол, я думаю, вам все еще нужно больше инвестировать в функцию кодекса WordPress: get_post_meta проверьте это на сайте кодекса WordPress, и вы увидите все, что хотите. и чтобы создать свой CCK как настраиваемые поля, используйте плагины More Fields и создайте свои собственные настраиваемые поля и введите их, а затем назначьте их своему пользовательскому типу сообщений и установите для него роль. честно говоря, после большой работы с wordpress я могу сказать вам, вы можете делать что угодно с wordpress, нет никаких ограничений. Вскоре вы увидите более совершенную версию, выпустив wp3.1 Query с несколькими таксономиями, шаблоном архива пользовательских типов сообщений и так далее.

    • 0
  3. Бессовестная самореклама:

    Мой плагин пытается очень точно эмулировать пользовательский интерфейс Views 2 для создания пользовательских запросов.
    http://wordpress.org/extend/plugins/query-wrangler/

    Этот плагин позволяет создавать новые запросы WP в виде страниц или виджетов. По сути, это Drupal Views для WordPress.

    • 0
  4. Надеюсь немного оживить эту тему, так как это кажется отличной идеей. Я пользуюсь Drupal чуть больше года и каждый день нахожу просмотры бесценными. Возможно, вы захотите проверить плагин WordPress, который я нашел — Views for WordPress — но он не позволяет фильтровать/сортировать внешний интерфейс (только администратор) — так что определенно есть на чем основываться. Возможность выборочного предоставления пользователю этих фильтров/параметров сортировки была бы чрезвычайно полезной. Спасибо!

    • 0
  5. Существует также этот модуль WP, который предлагает некоторые функции представлений: http://wordpress.org/extend/plugins/query-wrangler/

    • 0

Оставить ответ

You must login to add an answer.