- Statut : non résolu
- Ce sujet contient 5 réponses, 2 participants et a été mis à jour pour la dernière fois par olivierbeyo, le il y a 11 années et 3 mois.
-
AuteurMessages
-
16 mai 2013 à 16 h 20 min #524267
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 3.5.1
– Version de PHP/MySQL : 5.2.11/5.5.8
– Thème utilisé : Perso
– Extensions en place :
– Nom de l’hebergeur : localhost
– Adresse du site :Problème(s) rencontré(s) :
Bonjour,je dois créer un site dont une partie liste des établissements, regroupés par type.
j’ai donc créé :function custom_post_etablissements() {
$labels = array(
‘name’ => __(‘Etablissements’),
‘add_new’ => ‘Ajouter un nouvel établissement’,
‘add_new_item’ => ‘Ajouter une nouvel établissement’,
‘edit_item’ => ‘Mettre à jour un établissement’,
‘menu_name’ => __(‘Etablissements’)
);
$args = array(
‘labels’ => $labels,
‘public’ => true,
‘show_in_nav_menus’ => true,
‘menu_position’ => 5,
‘show_ui’ => true,
‘show_in_menu’ => true,
‘capability_type’ => ‘post’,
‘hierarchical’ => true,
‘with_front’ => true,
‘supports’ => array( ‘title’, ‘editor’, ‘thumbnail’, ‘excerpt’),
‘has_archive’ => false,
);
register_post_type( ‘etablissements’, $args );
}
add_action( ‘init’, ‘custom_post_etablissements’ );
function taxonomies_etablissements() {
$args = array(
‘hierarchical’ => false,
‘label’ => ‘Type d’établissement’,
‘query_var’ => true,
‘rewrite’ => true,
‘show_admin_column’ => true ,
);
register_taxonomy( ‘type_etablissement’, ‘etablissements’, $args);
}
add_action( ‘init’, ‘taxonomies_etablissements’, 0 );J’ai créé un certain nombre de type d’établissement (type 1, type2…)
J’ai créé un certain nombre d’établissement auxqules j’ai attribué un type d’établissement
etablissement 1 => type 1
etablissement 2 => type 1
etablissement 3 => type 2
etablissement 4 => type 3
etablissement 5 => type 1Je voudrais savoir quelle est la « meilleure » (?) méthode pour avoir :
dans le menu la liste des types d’établissement
puis quand on clique sur le type, on affiche la liste des établissements de ce type (1)
puis quand on clique sur le lien d’un des établissements, on affiche le contenu de l’établissement (2) + la liste des établissement du même type dans la colonne sidebar (3)pour l’instant j’étais parti sur l’idée pour (1) de créer une Page par type d’établissement qui aurait un template spécifique affichant le liste des établissements
<?php
/**
* Template Name: Etablissements
*/
get_header(); ?>
<div id="primary" class="site-content">
<div id="content" role="main">
<?php
wp_reset_postdata();
$args = array (
'post_type' => ‘etablissements’,
‘orderby’ => ‘meta_value’,
‘type_etablissement’ => ‘type1’,
‘order’ => ‘DESC’,
‘posts_per_page’=>’-1’//’posts_per_page’=>’-1’//-1 = tous
);
$query = new WP_Query($args);
$i=0;
echo ‘<ul>‘;
while ( $query->have_posts() ) : $query->the_post();
?>
<li><a href="<?php the_permalink(); ?> » title= »<?php printf( esc_attr__( 'Lire %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?> » rel= »bookmark »>
<div class="thumb"><?php the_post_thumbnail('medium'); ?></div>
<h2 class="titleoverlay"><?php the_title(); ?></h2></a></li>
<?php
$i++;
endwhile;
echo '</ul>‘;
?>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_footer(); ?>Mais déjà celà dans ce cas, cela veut dire que je dois créer autant de template qu’il y a de type d’établissement
à cause du paramètre ‘type_etablissement’ => ‘xxxx’
peut-on déjà améliorer ça ? Et est-ce que cette manière de faire (créer une page « conteneur) est optimale ?Ensuite, quand j’ai cliqué sur un des lien pour un type donné,
j’affiche la fiche l’établissement, mais je ne vois pas comment récupérer à partir de cette page (single.php), la liste des établissements de ce type ? point (3)
ex : pour l’établissement 1, comment avoir<h2>type 1</h2>
<ul>
<li><a ...>etablissement 1</a></li>
<li><a ...>etablissement 2</a></li>
<li><a ...>etablissement 5</a></li>
<ul>j’ai regardé du coté de get_taxonomies, get taxonomy, … mais ce n’est pas ce que je cherche.
Merci d’avance de me donner vos suggestions
16 mai 2013 à 16 h 54 min #893401Bonjour olivierbeyo,
Ce que j’aurais fais c’est de créer un modèle de page (Une seul), puis de créer un « custom field : type_etablissement » pour cette page. Tu passe les paramètres via ce custom field (pour évité de créer des modèle de page à chaque type).
ton array peut donc ressembler à ça:$args = array (
‘post_type’ => ‘etablissements’,
‘orderby’ => ‘meta_value’,
‘type_etablissement’ => get_post_meta($post->ID, ‘presidence’, true) ,
‘order’ => ‘DESC’,
‘posts_per_page’=>’-1’//’posts_per_page’=>’-1’//-1 = tous
);C’est juste une piste comme d’autre, à toi de voir…
Bon courage 🙂16 mai 2013 à 16 h 59 min #893402Je réctifie mon truc désolé:
Tu créer un taxonomie article par exemple, ou category…$args = array (
‘post_type’ => ‘etablissements’,
‘article’ => get_post_meta($post->ID, ‘type_etablissement’, true) ,
‘posts_per_page’=>’-1’//’posts_per_page’=>’-1’//-1 = tous
);article étant un taxonomie et type_etablissement le custom field….
16 mai 2013 à 18 h 00 min #893403Hmm, la piste du custom field me semble intéressante (je n’y avais pas pensé pour gérer ça), par contre je ne vois pas trop comment l’exploiter :
en utilisant mon premier code pour les custom type, je remplace la custom taxonomie par un custom field ?function custom_post_etablissements() {
$labels = array(
‘name’ => __(‘Etablissements’),
‘add_new’ => ‘Ajouter un nouvel établissement’,
‘add_new_item’ => ‘Ajouter une nouvel établissement’,
‘edit_item’ => ‘Mettre à jour un établissement’,
‘menu_name’ => __(‘Etablissements’)
);
$args = array(
‘labels’ => $labels,
‘public’ => true,
‘show_in_nav_menus’ => true,
‘menu_position’ => 5,
‘show_ui’ => true,
‘show_in_menu’ => true,
‘capability_type’ => ‘post’,
‘hierarchical’ => true,
‘with_front’ => true,
‘supports’ => array( ‘title’, ‘editor’, ‘thumbnail’, ‘excerpt’, ‘custom-field’), //Ajout des custom fields
‘has_archive’ => false,
);
register_post_type( ‘etablissements’, $args );
}
add_action( ‘init’, ‘custom_post_etablissements’ );mais dans ce cas,
– à quoi correspond ta taxonomy « article » ?
– en quoi ton code évite d’avoir plusieurs modèles ? : si je crée une page « type 1 », une page « type 2 », que je leur … et que je les ajoute au menu que je leur attribue le modèle « Etablissement », si je clique sur un de ces type, j’ai l’ensemble des etablissements, pas de tri…
le but étant d’avoir dans le menu : les types et quand on clique sur un type on a les établissment de ce type.
peux tu m’expliquer comment tu structurerais ça :
– un custom-post Etablissement (?) ayant un custom field type_etablissement), et une taxo (sui serait quoi et qui servirait à quoi alors) ?
– qu’ajoute tu dans le menu pour avoir la liste des types d’établissement dans le déroulant ?Merci d’avance
17 mai 2013 à 14 h 55 min #893404olivierbeyo wrote:– à quoi correspond ta taxonomy « article » ?La taxonomie article corresponde au type d’établissement.
Le système permet de créer qu’une seul modèle de page, mais par contre de créer toutes les pages pour passer la variable type.
Puis tu ajoute les pages dans le menu normal.– Une autre piste c’est de faire passer la variable par la méthode GET (php). Puis de faire la même requête. C’est dans le lien que tu fais passer ta variable.
Ex: http://monsite.com/ma_page.php?type=type1$args = array (
‘post_type’ => ‘etablissements’,
‘orderby’ => ‘meta_value’,
‘type_etablissement’ => $_GET[« type »] ,
‘order’ => ‘DESC’,
‘posts_per_page’=>’-1’//’posts_per_page’=>’-1’//-1 = tous
);a toi de voir ce qui te convient
a+ 🙂
17 mai 2013 à 15 h 28 min #893405Bon, pour être sûr que l’on parle de la même chose :
Ton idée d’utiliser un custom field me plaît bien.
1)Cependant, est-ce que tu ajoute ce custom field à une page standard (type « page ») ou bien tu l’ajouterait à un custom post type (etablissements) comme j’ai fait (mon premier message) ?2)
tu disLa taxonomie article corresponde au type d’établissement.
J’avoue que je ne comprend plus trop (peut-être suis-je trop fatigué), mais concrètement, est-ce que tu suggère que je crée une taxonomie ET un custom field pour le type d’article Etablissement (dans ce cas, à quoi sert le custom field, si la taxo sert pour le type d’établissement) ?
3) Pour ton idée de passer une variable supplémentaire dans le permalien (ici la variable type d’établissement), j’ai déjà eu des problèmes que je n’ai jamais réussi à résoudre :
– avec les urls rewrités, la variable semble « perdue » et pire, les autres variables changent (vu avec avec un var_dump…), bien que j’ajoute dans functions.phpfunction add_query_vars($query_vars)
{
$query_vars[] = « mavariablesupplementaire »;
return $query_vars;
}
add_filter(‘query_vars’, ‘add_query_vars’);En tout cas merci pour le temps que tu passes à me donner des pistes.
-
AuteurMessages
- Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.