- Statut : non résolu
- Ce sujet contient 12 réponses, 3 participants et a été mis à jour pour la dernière fois par didier07, le il y a 9 années et 10 mois.
-
AuteurMessages
-
27 octobre 2014 à 12 h 05 min #543511
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 4.0
– Version de PHP/MySQL : 5.4.10
– Thème utilisé : personnalisé
– Extensions en place : aucune
– Nom de l’hebergeur : localhost sous mamp
– Adresse du site : 127.0.0.0Problème(s) rencontré(s) :
Bonjour,
grâce a la fonction « register_post_type » je peut créer un type de POST personnalisé. Seulement je désire que dans l’onglet « add », je puisse moduler à ma guise et mettre les champs qui me conviennent. Je sais qu’il existe des custom_post mais je ne veut pas recréer mes champs à chaque ajout c’est contraignant.Donc je souhaite par exemple avoir un type de POST ‘immobilier’ et pouvoir ajouter chaque un bien immobilier avec des champs tel que. surface, prix, etc….
J’ai bien vu que je pouvais interagir sur les champs grâce a l’option ‘supports’ de « register_post_type ». Je pense que je vais avoir besoin de ‘taxonomies’. Bien que malgré la documentation du codex je n’ai absolument pas compris leurs rôles.Pouvez vous me donner un conseil, m’orienter svp ?
je vous remercie par avance.
Cordialement
27 octobre 2014 à 12 h 24 min #979695Il faut que tu créés tes metabox. Tu trouveras des tutos à foison.
Tu peux voir sur la page http://viticreation.fr/vacances-ardechoises (je sais, il faut que je remette la lightbox)Didier
27 octobre 2014 à 17 h 13 min #979696Merci didier,
Je vais aller voir de ce pas.
Puis je me permettre de demande ce qu’est exactement les ‘taxonomies’ ?
27 octobre 2014 à 18 h 32 min #979697une taxonomie est un « axe de classement »
il y a deux taxonomies standard dans wordpress : les catégories et les mots clés28 octobre 2014 à 10 h 26 min #979698Merci lumière de lune,
je ne vois pas bien a quoi cela va me servir. Peut être pour un filtre sur mes types de Post ?Alors pour les métabox j’ai trouver mon bonheur ou presque j’ai fait un bout de code pour voir comment cela fonctionne. Mais elles n’apparaissent pas dans mon type de Post, quand je vais dans créer.
je vous colle mon code ici
add_action(‘init’, ‘my_custom_init’);
function my_custom_init(){
register_post_type(‘projet’, array(
‘label’ => __(‘Immobilier’),
‘singular_label’ => __(‘Immobilier’),
‘public’ => true,
‘show_ui’ => true,
‘capability_type’ => ‘post’,
‘hierarchical’ => false,
‘taxonomies’ => array( ‘surface’, ‘prix’ ),
‘supports’ => array( ‘title’,
‘editor’,
)//ici le sujet qui m’interesse
));
}
add_action(‘add_meta_boxes’,’init_metabox’);
function init_metabox(){
add_meta_box(‘info_bien’, ‘Informations sur bien’, ‘info_client’, ‘Immobilier’, ‘side’);
}
function info_client($post){
$surface = get_post_meta($post->ID,’_surface’,true);
$prix = get_post_meta($post->ID,’_prix’,true);
?>
<label for="surface">Surface : </label>
<input id="surface" style="width: 50px;" type="text" name="surface" value=" » />
<label for="prix">Prix : </label>
<input id="prix" type="text" name="prix" value=" » />
<?php
}
add_action('save_post','save_metabox');
function save_metabox($post_id){
if(isset($_POST['surface'])){
update_post_meta($post_id, '_surface', sanitize_text_field($_POST['surface']));
}
if(isset($_POST['prix'])){
update_post_meta($post_id, '_prix', sanitize_text_field($_POST['prix']));
}
}Pouvez vous me dire quelle erreurs je ne voit pas ?
Je vous remercie par avance
28 octobre 2014 à 10 h 32 min #979699Ce bloc
echo $surface; ?>
<label for="surface">Surface : </label>
<input id="surface" style="width: 50px;" type="text" name="surface" value=" » />
<label for="prix">Prix : </label>
<input id="prix" type="text" name="prix" value="add_action('init', 'my_custom_init');doit être dans la fonction d’affichage de ta métabox, pas en dehors.
add_meta_box(‘info_bien’, ‘Informations sur bien’, ‘info_client’, ‘Immobilier’, ‘side’)
C’est là que tu définis la fonction qui va gérer ton affichage
28 octobre 2014 à 17 h 05 min #979700Bonjour didier,
étrangement chez moi ce bloc est au bon endroit le copier/coller ne c’est pas bien passé.
je remet pour voir
add_action(‘init’, ‘my_custom_init’);
function my_custom_init(){
register_post_type(‘projet’, array(
‘label’ => __(‘Immobilier’),
‘singular_label’ => __(‘Immobilier’),
‘public’ => true,
‘show_ui’ => true,
‘capability_type’ => ‘post’,
‘hierarchical’ => false,
‘taxonomies’ => array( ‘surface’, ‘prix’ ),
‘supports’ => array( ‘title’,
‘editor’,
)//ici le sujet qui m’interesse
));
}
add_action(‘add_meta_boxes’,’init_metabox’);
function init_metabox(){
add_meta_box(‘info_bien’, ‘Informations sur bien’, ‘info_client’, ‘Immobilier’, ‘side’);
}
function info_client($post){
$surface = get_post_meta($post->ID,’_surface’,true);
$prix = get_post_meta($post->ID,’_prix’,true);
echo ‘<label for="surface">Surface : </label>‘;
echo ‘<input id="surface" style="width: 50px;" type="text" name="surface" value=" » />’;
echo ‘<label for="prix">Prix : </label>‘;
echo ‘<input id="prix" type="text" name="prix" value=" » />’;
}
add_action(‘save_post’,’save_metabox’);
function save_metabox($post_id){
if(isset($_POST[‘surface’])){
update_post_meta($post_id, ‘_surface’, sanitize_text_field($_POST[‘surface’]));
}
if(isset($_POST[‘prix’])){
update_post_meta($post_id, ‘_prix’, sanitize_text_field($_POST[‘prix’]));
}
}28 octobre 2014 à 17 h 07 min #979701J’ai vu les
je les ai corrigés
28 octobre 2014 à 18 h 21 min #979702Je pense que ton erreur est ici
[c] register_post_type(‘projet’, array([/c]ou là
[c]add_meta_box(‘info_bien’, ‘Informations sur bien’, ‘info_client’, ‘Immobilier’, ‘side’);[/c]Regarde bien la définition de tes fonctions et tu comprendras 😉
29 octobre 2014 à 10 h 39 min #979703Bonjour,
Ce fut laborieux mais j’ai trouver.
c’est mon premier argument de register_post_type() qui n’étais pas le même que le quatrième argument de add_meta_box().
Ils ne pouvaient pas se voir.
Question, si je souhaite une fois dans le coté client faire un filtre pour avoir tout mes bien qui ont une surface de 50m2, par exemple. Je suppose que je dois utiliser des taxonomy pour créer des tags. Mais c’est assez flou j’en fait quoi de ces tags ensuite ? comme cela fonctionne t’il ?
J’ai bien parcourus la doc sur le codex mais je n’ai pas compris l’idée.Je vous remercie par avance
Cordialement.
29 octobre 2014 à 10 h 45 min #979704darkterreur wrote:c’est mon premier argument de register_post_type() qui n’étais pas le même que le quatrième argument de add_meta_box().Le quatrième argument de add_meta_box c’est le nom du post_type (enfin de la page sur laquelle doit apparaitre la metabox) 👏
Tu la rateras pas la prochaine fois 🍺Les taxonomy c’est pour creer des categories ou des tags. Ensuite tu les fais afficher sur ton template.
Regarde les pages de http://vacancesardechoises.fr c’est bourré de CPT et de taxonomies
Didier
31 octobre 2014 à 9 h 31 min #979705Bonjour,
J’ai été voir le site, mais je ne suis pas sur de ce que je dois voir.
J’ai parcouru le codex sur les taxonomy, mais une fois créer je ne vois pas bien ce que je peux en faire.
A quoi me servent ils une fois dans mon template ?Je suis sur que c’est pour des tris ou des classement, mais je ne vois pas les outils de wordpress que je peux utiliser pour etre efficace.
Cordialement
31 octobre 2014 à 9 h 54 min #979706http://codex.wordpress.org/fr:Hi%C3%A9rarchie_de_modeles
Un fichier taxonomy-surface-50m.php va afficher que les posts qui ont comme 50m comme valeur dans la category (ou tag) surface.
Dans mon cas : taxonomy-type-hebergement.php gére les pages http://vacancesardechoises.fr/type-hebergement/gites ou http://vacancesardechoises.fr/type-hebergement/camping
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.