web-dev-qa-db-fra.com

Comment répliquer certaines fonctionnalités de Drupal Views dans WordPress?

J'avoue que je pense toujours à Drupal. (En choisissant entre développer dans WordPress et Drupal, j'ai toujours tendance à préférer Drupal, car je n'ai pas encore compris certaines choses du côté de WordPress.)

Pouvez-vous nous aider à comprendre comment réaliser dans WordPress au moins certaines des fonctionnalités de View que je connais et que j’adore?

Je peux voir que les plugins qui fonctionnent avec les types de messages personnalisés sont l'équivalent WordPress de CCK. Maintenant, existe-t-il un moyen (via une interface utilisateur ou un code) pour: 1. afficher des champs personnalisés dans les colonnes et les lignes 2. Exposer les filtres, c’est-à-dire créer des menus déroulants en haut, pour permettre à l’utilisateur final de sélectionner

Voici un exemple d'image d'un seul champ exposé. http://www.packtpub.com/sites/default/files/Article-Images/drupalviews-article1-timage18.png (extrait de mon livre)

Les variantes incluraient le filtrage par plusieurs sujets ou champs personnalisés, la possibilité de sélectionner plusieurs options, la sélection de champs autres que des catégories ou des balises, etc.

Il y a un argument à faire que si j'aime tellement Drupal, je devrais l'utiliser. Mais je pense que je pourrais aussi être un utilisateur heureux de WordPress, si je pouvais comprendre comment afficher des champs personnalisés et comment permettre aux utilisateurs finaux de sélectionner des filtres exposés. Toute orientation est la bienvenue.


METTRE À JOUR:

Je suis studieusement en train de parcourir deux réponses jusqu'à présent. Et jusqu'à présent, j'ai pu créer des champs personnalisés et les afficher, poste par message.

C'est ce que j'ai ajouté à mon single.php. (C'est un peu brouillon, et j'apprécie les idées d'amélioration.) Mais ce qu'il me reste à faire est de extraire cela du contexte de single.php pour pouvoir afficher TOUS les champs de publication , et pas seulement ID actuel. (De plus, mon css actuel indique que .meta_items est affiché sous le mauvais .meta_table_header s’il existe des champs vierges. Semble régler la largeur ne fonctionne pas si l’élément est vide, donc je dois le renseigner avec un nobreak-space.)

J'ai également installé le plugin Custom Field Template: http://wordpress.org/extend/plugins/custom-field-template/ , et j'ai découvert comment délimiter par une virgule les résultats de multiples sélections de cases à cocher. (Je n'ai pas encore beaucoup joué avec Template de terrain personnalisé, mais j'ai le sentiment de l'apprécier.)

 <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>

Voici la feuille de style d'accompagnement, que j'ai placée dans 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>

Une fois que tous les champs des articles seront affichés dans une URL distincte, je travaillerai sur les "paramètres de champs personnalisés de query_posts". Donc, j'en sais plus que lorsque j'ai posé la question pour la première fois. Encore du chemin à faire.

(Drupal Views offre une interface utilisateur puissante, et jusqu’à présent, il s’agit presque entièrement de codage, mais j’attendrai de le comprendre vraiment dans WordPress avant de faire des déclarations plus simples. Ce que j’espère est de permettre au utilisateur à filtrer par plusieurs champs personnalisés dans WordPress.

Voici à quoi cela ressemble jusqu'à présent.

Progress so far...

Viser quelque chose de plus semblable à:

Goal

4
Marjorie Roswell
  1. affiche les champs personnalisés dans les colonnes et les lignes: get_post_meta pour les afficher dans votre thème, et add_meta_box pour personnaliser l'administrateur

  2. Exposez les filtres, c’est-à-dire créez des menus déroulants en haut, pour permettre à l’utilisateur final de sélectionner: vous souhaiterez peut-être utiliser les paramètres champs personnalisés de query_posts . Par exemple.:

Zone de liste déroulante dans un formulaire en haut:

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

Requête personnalisée correspondante:

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

Vous voudrez peut-être voir The Loop et get_posts pour référence.

J'espère que cela t'aides.

2
sorich87

Auto promotion éhontée:

Mon plugin tente d'émuler l'interface utilisateur de Views 2 pour créer des requêtes personnalisées de très près.
http://wordpress.org/extend/plugins/query-wrangler/

Ce plugin vous permet de créer de nouvelles requêtes WP sous forme de pages ou de widgets. Il s’agit essentiellement de vues Drupal pour WordPress.

1
daggerhart

lol, je pense que vous devez toujours investir davantage dans la fonction codex wordpress: get_post_meta consultez ceci sur le site codex wordpress et vous verrez tout ce que vous voulez. et pour construire votre CCK à la manière de champs personnalisés, utilisez les plug-ins More Fields, créez vos propres champs personnalisés, tapez-les, puis affectez-les à votre type de publication personnalisé et définissez-en le rôle. honnêtement, après beaucoup de travail avec wordpress, je peux vous dire que vous pouvez faire n'importe quoi avec wordpress, il n'y a pas de limitation. Vous verrez bientôt plus de versions polonaises en publiant wp3.1 Interroger plusieurs taxonomies, un modèle d'archive de type publication personnalisé, etc.

1
AliMH

J'espère animer un peu ce sujet, car cela semble être une excellente idée. Je suis un utilisateur de Drupal depuis un peu plus d'un an et trouve Views inestimable au quotidien. Vous voudrez peut-être consulter un plugin WordPress que j'ai trouvé - Vues pour WordPress -, mais cela ne permet pas le filtrage/tri frontal (uniquement pour les administrateurs) - il est donc tout à fait possible de construire dessus. Pouvoir exposer ces filtres/options de tri de manière sélective à un utilisateur serait extrêmement bénéfique. Merci!

0
Zach

Il existe également un module thisWP qui offre certaines des fonctionnalités de Views: http://wordpress.org/extend/plugins/query-wrangler/

0
user32695