如何在WordPress中复制一些Drupal视图功能?

时间:2010-09-30 作者:Marjorie Roswell

我承认,我仍然用Drupal思考。(在WordPress和Drupal中选择开发时,我仍然倾向于选择Drupal,因为我还没有弄清楚WordPress方面的一些事情。)

Can you help to figure out how to achieve in WordPress at least some of the Views functionality I know and love?

我可以看到,使用自定义帖子类型的插件与WordPress相当于CCK。现在,有没有一种方法(通过UI或代码)来:1。在列和行中显示自定义字段2。公开过滤器,即在顶部创建下拉列表,以允许最终用户选择

这是一张单个曝光场的示例图像。http://www.packtpub.com/sites/default/files/Article-Images/drupalviews-article1-timage18.png (摘自我的书)

变化包括按多个主题或自定义字段过滤、能够选择多个选项、选择不只是类别或标记的字段等。

有一个论点是,如果我这么喜欢Drupal,我应该使用它。但如果我能弄清楚如何显示自定义字段,以及如何允许最终用户通过公开的过滤器进行选择,那么我也可以成为一个快乐的WordPress用户。欢迎任何指导。

更新:

到目前为止,我正在认真研究两个答案。到目前为止,我已经能够创建自定义字段,并一次显示一篇文章。

这就是我在单曲中加入的内容。php。(这有点混乱,我欢迎改进的想法。)但我仍然要做的是get this out of the single.php context, so that I can display ALL post fields, 而不仅仅是当前ID。(Also, my current css yields .meta_items displaying under the wrong .meta_table_header 如果有空白字段。如果元素为空,则设置宽度似乎不起作用,因此我必须以某种方式使用nobreak空格填充它。)

我还安装了自定义字段模板插件: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>
这是随附的样式表,我将其放在标题中。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\\u posts的自定义字段参数”所以,我知道的比我第一次问这个问题时知道的要多。还有很长的路要走。

(Drupal Views提供了一个强大的UI,到目前为止,这几乎都是编码,但我会等到在WordPress中真正解决了这一问题后,再宣布哪一个更容易。我希望最终使用户能够通过WordPress中的多个自定义字段进行筛选。

这是目前为止的情况。

Progress so far...

目标更像:

Goal

4 个回复
SO网友:sorich87

在列和行中显示自定义字段:get_post_meta 在主题中显示它们,以及add_meta_box 自定义管理员

公开过滤器,即在顶部创建下拉列表,以允许最终用户选择:您可能需要使用custom fields parameters of 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 Loopget_posts 供参考。

希望这有帮助。

SO网友:daggerhart

无耻的自我推销:

我的插件试图模拟Views 2 UI,以便非常紧密地构建自定义查询
http://wordpress.org/extend/plugins/query-wrangler/

该插件允许您以页面或小部件的形式创建新的WP查询。这基本上是WordPress的Drupal视图。

SO网友:Zach

希望能让这条线更生动一点,因为这似乎是一个很好的主意。我已经是Drupal用户一年多了,每天都能看到非常宝贵的视图。你可能想看看我找到的WordPress插件-Views for WordPress - 但这不允许前端过滤/排序(只是管理),因此肯定需要一些基础。能够有选择地向用户公开这些过滤器/排序选项将非常有益。谢谢

SO网友:user32695

还有此WP模块提供了一些视图功能:http://wordpress.org/extend/plugins/query-wrangler/

结束

相关推荐