- Statut : non résolu
- Ce sujet contient 11 réponses, 2 participants et a été mis à jour pour la dernière fois par erehcab, le il y a 12 années et 4 mois.
-
AuteurMessages
-
22 mai 2012 à 8 h 29 min #509852
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 !
22 mai 2012 à 8 h 32 min #834139Ne 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 …
22 mai 2012 à 9 h 14 min #834140Il 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
22 mai 2012 à 9 h 17 min #834141oui 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…22 mai 2012 à 9 h 23 min #834142ba… tu peux déjà analyser ce qu’ils font et voir comment t’en inspirer 🙂
22 mai 2012 à 9 h 27 min #834143Je viens de trouver cette class : http://www.deluxeblogtips.com/taxonomy-meta-script-for-wordpress je vais la tester pour voir ce que ça donne.
22 mai 2012 à 9 h 33 min #834144juste parfait et simple pour le côté administration, reste à voir comment ça se passe côté front
22 mai 2012 à 9 h 34 min #834145le 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);
}22 mai 2012 à 17 h 01 min #834146le 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 »;
}
}22 mai 2012 à 17 h 55 min #834147On peut effacer le message précedent donc?
22 mai 2012 à 19 h 53 min #834148Oui, mais comment se fait il qu’on ne puisse plus modifier c’est message ? c’est un bug juste chez moi ?
22 mai 2012 à 20 h 01 min #834149En plus j’ai fait une énorme faute d’orthographe … quelle tristesse !
-
AuteurMessages
- Le forum ‘Dépôts pour les extensions, trucs, astuces’ est fermé à de nouveaux sujets et réponses.