Ajouter un champ image à une taxonomy (Créer un compte)

  • Statut : non résolu
12 sujets de 1 à 12 (sur un total de 12)
  • Auteur
    Messages
  • #509852
    erehcab
    Participant
    Chevalier WordPress
    248 contributions

    Bonjour à tous,

    je viens de créer un type et une taxonomy particulière depuis le fichier functions.php de mon thème :

    register_post_type( ‘piano-neuf’,
    array(
    ‘label’ => __(‘Piano neuf’),
    ‘singular_label’ => __(‘Piano neuf’, ‘toolbox’),
    ‘_builtin’ => false,
    ‘exclude_from_search’ => true, // Exclude from Search Results
    ‘capability_type’ => ‘post’,
    ‘public’ => true,
    ‘show_ui’ => true,
    ‘show_in_nav_menus’ => true,
    ‘rewrite’ => array(‘slug’ => ‘piano-neuf’, ‘with_front’ => FALSE),
    ‘query_var’ => « piano-neuf », // This goes to the WP_Query schema
    ‘menu_icon’ => get_template_directory_uri() . ‘/images/icon_piano.png’,
    ‘supports’ => array( ‘title’, ‘editor’, ‘author’, ‘thumbnail’, ‘excerpt’,’category’)
    )
    );
    register_taxonomy(‘piano-neuf_category’, ‘piano-neuf’,
    array(
    ‘hierarchical’ => true,
    ‘label’ => ‘Piano neuf Categories’,
    ‘singular_name’ => ‘Category’,
    « rewrite » => true,
    ‘supports’ => array( ‘title’, ‘editor’, ‘author’, ‘thumbnail’, ‘excerpt’,’category’),
    « query_var » => true
    )
    );

    ce code est fonctionnel et me convient très bien, cependant j’aimerai ajouter un champ image avec upload pour les catégories mais je n’y arrive pas… Si quelqu’un connait la méthode je suis preneur !

    #834139
    erehcab
    Participant
    Chevalier WordPress
    248 contributions

    Ne faite pas attention à la ligne

    ‘supports’ => array( ‘title’, ‘editor’, ‘author’, ‘thumbnail’, ‘excerpt’,’category’),

    de register_taxonomy() c’était un test non concluant que j’ai oublié de virer avant de coller mon code dans mon premier post et impossible de modifer ce post …

    #834140
    Guy
    Participant
    Maître WordPress
    14817 contributions

    Il existe un plugin, que je ne connais pas, qui le fait, voir ici: http://www.wpbeginner.com/plugins/how-to-add-taxonomy-images-in-wordpress/

    IL n’y a pas de champ image dans un enregistrement de type term, tu peux peut-être jouer avec la description pour y ajouter une image. Sinon, je pense que le plugin sauvegarde l’image dans wp_options ou crée une table du style wp_term_meta ou wp_taxonomy_meta

    #834141
    erehcab
    Participant
    Chevalier WordPress
    248 contributions

    oui j’ai vu aussi que plusieurs plugins proposaient une solution à mon problème mais j’avais envie de ne pas en utiliser et de jouer un peu avec le code…
    Je crois que c’est peine perdue et qu’il va falloir utiliser un des ces plugins…

    #834142
    Guy
    Participant
    Maître WordPress
    14817 contributions

    ba… tu peux déjà analyser ce qu’ils font et voir comment t’en inspirer 🙂

    #834143
    erehcab
    Participant
    Chevalier WordPress
    248 contributions

    Je viens de trouver cette class : http://www.deluxeblogtips.com/taxonomy-meta-script-for-wordpress je vais la tester pour voir ce que ça donne.

    #834144
    erehcab
    Participant
    Chevalier WordPress
    248 contributions

    juste parfait et simple pour le côté administration, reste à voir comment ça se passe côté front

    #834145
    erehcab
    Participant
    Chevalier WordPress
    248 contributions

    le code pour ajouter un champ image à la taxonomie (dans functions.php du thème actif) :

    $includes_path = TEMPLATEPATH . ‘/includes/’;
    require_once $includes_path . ‘taxonomy-meta.php’;
    $meta_sections[] = array(
    ‘id’ => ‘additional’,
    ‘title’ => ‘Additional Information’,
    ‘taxonomies’ => array(‘piano-neuf_category’),
    ‘fields’ => array(
    array(
    ‘name’ => ‘Upload’,
    ‘desc’ =>  »,
    ‘id’ => ‘thumbnail’,
    ‘type’ => ‘image’
    )
    )
    );
    foreach ($meta_sections as $meta_section) {
    $my_section = new RW_Taxonomy_Meta($meta_section);
    }

    #834146
    erehcab
    Participant
    Chevalier WordPress
    248 contributions

    le walker du dessus n’est pas le bon mais impossible de modifier le message… Voilà le bon walker :

    EDIT modération: le message précédent a été supprimé pour ne pas laisser une erreur.

    class My_Function_Walker extends Walker_Nav_Menu
    {
    function start_lvl(&$output, $depth)
    {
    $indent = str_repeat(« t », $depth);
    $output .= « n$indent<div><ul class="sub-menu niveau-$depth">n »;
    }
    function start_el(&$output, $item, $depth, $args)
    {
    global $wp_query;
    $indent = ( $depth ) ? str_repeat( « t », $depth ) :  »;

    $class_names = $value =  »;

    $classes = empty( $item->classes ) ? array() : (array) $item->classes;
    $classes[] = ‘menu-item-‘ . $item->ID;

    $class_names = join( ‘ ‘, apply_filters( ‘nav_menu_css_class’, array_filter( $classes ), $item, $args ) );
    $class_names = ‘ class= »‘ . esc_attr( $class_names ) . ‘ »‘;

    $id = apply_filters( ‘nav_menu_item_id’, ‘menu-item-‘. $item->ID, $item, $args );
    $id = strlen( $id ) ? ‘ id= »‘ . esc_attr( $id ) . ‘ »‘ :  »;

    $output .= $indent . ‘<li>‘;

    $attributes = ! empty( $item->attr_title ) ? ‘ title= »‘ . esc_attr( $item->attr_title ) .' »‘ :  »;
    $attributes .= ! empty( $item->target ) ? ‘ target= »‘ . esc_attr( $item->target ) .' »‘ :  »;
    $attributes .= ! empty( $item->xfn ) ? ‘ rel= »‘ . esc_attr( $item->xfn ) .' »‘ :  »;
    $attributes .= ! empty( $item->url ) ? ‘ href= »‘ . esc_attr( $item->url ) .' »‘ :  »;

    $src = null;
    if($item->object == ‘piano-neuf_category’) {
    $meta = get_option(‘additional’);
    if (empty($meta[$item->object_id])) $meta[$item->object_id] = array();
    if (!is_array($meta[$item->object_id])) $meta[$item->object_id] = (array) $meta[$item->object_id];
    $meta = isset($meta[$item->object_id][‘thumbnail’]) ? $meta[$item->object_id][‘thumbnail’] : array();
    $images = $meta[0];
    $src = wp_get_attachment_image_src($images, ‘full’);
    }

    $item_output = $args->before;
    $item_output .= ‘<a>‘;
    if (is_null($src)) $item_output .= $args->link_before . apply_filters( ‘the_title’, $item->title, $item->ID ) . $args->link_after;
    else $item_output .= $args->link_before . ‘<img src="'.$src[0].'" width="'.$src[1].'" height="'.$src[2].'">title.' » />’ . $args->link_after;
    $item_output .= ‘</a>‘;
    $item_output .= $args->after;

    $output .= apply_filters( ‘walker_nav_menu_start_el’, $item_output, $item, $depth, $args );
    }
    function end_lvl(&$output, $depth)
    {
    $indent = str_repeat(« t », $depth);
    $output .= « n$indent</ul></div>n »;
    }
    }

    #834147
    Guy
    Participant
    Maître WordPress
    14817 contributions

    On peut effacer le message précedent donc?

    #834148
    erehcab
    Participant
    Chevalier WordPress
    248 contributions

    Oui, mais comment se fait il qu’on ne puisse plus modifier c’est message ? c’est un bug juste chez moi ?

    #834149
    erehcab
    Participant
    Chevalier WordPress
    248 contributions

    En plus j’ai fait une énorme faute d’orthographe … quelle tristesse !

12 sujets de 1 à 12 (sur un total de 12)
  • Le forum ‘Dépôts pour les extensions, trucs, astuces’ est fermé à de nouveaux sujets et réponses.