Ajouter des dans résultat de wp_list_categories (Créer un compte)

  • Statut : non résolu
8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Messages
  • #468602
    zenok
    Membre
    Chevalier WordPress
    314 contributions

    Bonjour,

    je souhaite ajouter des balises entre les résultats de wp_list_categories…

    j’ai tester ça : wp_list_categories(‘show_count=0&title_li=&include=8,9,10&before=&after=‘);

    et ça :

    $cat = wp_list_categories( »);
    $cat = preg_replace(‘%]+)>%U’,’‘, $cat);
    $cat = str_replace(‘
    ‘,’‘, $cat);
    echo $cat;

    mais malheureusement rien ne fonctionne!

    une petite idée peut-être?

    merci d’avance

    #666458
    zenok
    Membre
    Chevalier WordPress
    314 contributions

    j’ai fais des recherches mais rien de probant à part toucher le noyau!

    personne n’a eu besoin de faire ça?

    #666459
    Dric
    Participant
    Maître WordPress
    757 contributions

    Tu peux créer une fonction custom de wp_list_categories dans ton functions.php.
    La fonction de base se trouve dans wp-includes/category-template.php pour info, à la ligne 460
    Donc dans le functions.php du thème, tu colles le code de la fonction wp_list_categories, tu renommes la fonction en custom_wp_list_categories (ou n’importe quel nom d’ailleurs, du moment que ce n’est pas déjà utilisé), et du coup tu peux modifier l’affichage des résultats de cette fonction proprement sans aller trifouiller dans le code de base de WordPress, et sans qu’une mise à jour écrase toutes tes modifs.

    Ensuite dans ton thème tu appelles ta fonction là où tu veux afficher tes catégories.

    #666460
    zenok
    Membre
    Chevalier WordPress
    314 contributions

    merci pour ta réponse Dric…

    j’ai déjà testé ce que tu propose mais le résultat n’a rien donné…
    je ne sais pas ou placer les «  » dans ce bout de code!

    function wp_list_categories( $args =  » ) {
    	$defaults = array(
    		‘show_option_all’ =>  », ‘orderby’ => ‘name’,
    		‘order’ => ‘ASC’, ‘show_last_update’ => 0,
    		‘style’ => ‘list’, ‘show_count’ => 0,
    		‘hide_empty’ => 1, ‘use_desc_for_title’ => 1,
    		‘child_of’ => 0, ‘feed’ =>  », ‘feed_type’ =>  »,
    		‘feed_image’ =>  », ‘exclude’ =>  », ‘exclude_tree’ =>  », ‘current_category’ => 0,
    		‘hierarchical’ => true, ‘title_li’ => __( ‘Categories’ ),
    		‘echo’ => 1, ‘depth’ => 0
    	);
    
    	$r = wp_parse_args( $args, $defaults );
    
    	if ( !isset( $r[‘pad_counts’] ) && $r[‘show_count’] && $r[‘hierarchical’] ) {
    		$r[‘pad_counts’] = true;
    	}
    
    	if ( isset( $r[‘show_date’] ) ) {
    		$r[‘include_last_update_time’] = $r[‘show_date’];
    	}
    
    	if ( true == $r[‘hierarchical’] ) {
    		$r[‘exclude_tree’] = $r[‘exclude’];
    		$r[‘exclude’] =  »;
    	}
    
    	extract( $r );
    
    	$categories = get_categories( $r );
    
    	$output =  »;
    	if ( $title_li && ‘list’ == $style )
    			$output = ‘<li class="categories">‘ . $r[‘title_li’] . ‘<ul>‘;
    
    	if ( empty( $categories ) ) {
    		if ( ‘list’ == $style )
    			$output .= ‘<li>‘ . __( « No categories » ) . ‘</li>‘;
    		else
    			$output .= __( « No categories » );
    	} else {
    		global $wp_query;
    
    		if( !empty( $show_option_all ) )
    			if ( ‘list’ == $style )
    				$output .= ‘<li><a href="' .  get_bloginfo( 'url' )  . '">‘ . $show_option_all . ‘</a></li>‘;
    			else
    				$output .= ‘<a href="' .  get_bloginfo( 'url' )  . '">‘ . $show_option_all . ‘</a>‘;
    
    		if ( empty( $r[‘current_category’] ) && is_category() )
    			$r[‘current_category’] = $wp_query->get_queried_object_id();
    
    		if ( $hierarchical )
    			$depth = $r[‘depth’];
    		else
    			$depth = -1; // Flat.
    
    		$output .= walk_category_tree( $categories, $depth, $r );
    	}
    
    	if ( $title_li && ‘list’ == $style )
    		$output .= ‘</ul></li>‘;
    
    	$output = apply_filters( ‘wp_list_categories’, $output );
    
    	if ( $echo )
    		echo $output;
    	else
    		return $output;
    }

    je te remercie d’avance si d’un coup de baguette magique tu trouves l’endroit ou placer la balise

    #666461
    Dric
    Participant
    Maître WordPress
    757 contributions
    function custom_wp_list_categories( $args =  » ) {
      $defaults = array(
        ‘show_option_all’ =>  », ‘orderby’ => ‘name’,
        ‘order’ => ‘ASC’, ‘show_last_update’ => 0,
        ‘style’ => ‘list’, ‘show_count’ => 0,
        ‘hide_empty’ => 1, ‘use_desc_for_title’ => 1,
        ‘child_of’ => 0, ‘feed’ =>  », ‘feed_type’ =>  »,
        ‘feed_image’ =>  », ‘exclude’ =>  », ‘exclude_tree’ =>  », ‘current_category’ => 0,
        ‘hierarchical’ => true, ‘title_li’ => __( ‘Categories’ ),
        ‘echo’ => 1, ‘depth’ => 0
      );
     
      $r = wp_parse_args( $args, $defaults );
     
      if ( !isset( $r[‘pad_counts’] ) && $r[‘show_count’] && $r[‘hierarchical’] ) {
        $r[‘pad_counts’] = true;
      }
     
      if ( isset( $r[‘show_date’] ) ) {
        $r[‘include_last_update_time’] = $r[‘show_date’];
      }
     
      if ( true == $r[‘hierarchical’] ) {
        $r[‘exclude_tree’] = $r[‘exclude’];
        $r[‘exclude’] =  »;
      }
     
      extract( $r );
     
      $categories = get_categories( $r );
     
      $output =  »;
      if ( $title_li && ‘list’ == $style )
          $output = ‘<li class="categories">‘ . $r[‘title_li’] . ‘<ul>‘;
     
      if ( empty( $categories ) ) {
        if ( ‘list’ == $style )
          $output .= ‘<li>‘ . __( « No categories » ) . ‘</li>‘;
        else
          $output .= __( « No categories » );
      } else {
        global $wp_query;
     
        if( !empty( $show_option_all ) )
          if ( ‘list’ == $style )
            $output .= ‘<li><span class="category_span"><a href="' .  get_bloginfo( 'url' )  . '">‘ . $show_option_all . ‘</a></span></li>‘;
          else
            $output .= ‘<a href="' .  get_bloginfo( 'url' )  . '">‘ . $show_option_all . ‘</a>‘;
     
        if ( empty( $r[‘current_category’] ) && is_category() )
          $r[‘current_category’] = $wp_query->get_queried_object_id();
     
        if ( $hierarchical )
          $depth = $r[‘depth’];
        else
          $depth = -1; // Flat.
     
        $output .= walk_category_tree( $categories, $depth, $r );
      }
     
      if ( $title_li && ‘list’ == $style )
        $output .= ‘</ul></li>‘;
     
      $output = apply_filters( ‘custom_wp_list_categories’, $output );
     
      if ( $echo )
        echo $output;
      else
        return $output;
    }

    Si tu recopies ce code ça devrait aller. Si je n’ai pas gourré, tes catégories devraient maintenant etre contenues dans un span dont la classe est category_span.
    Là où tu veux afficher ta catégorie tu l’appelles avec la fonction

    #666462
    zenok
    Membre
    Chevalier WordPress
    314 contributions

    ça ne fonctionne pas… en fait j’ai déjà tenté cette approche en plaçant comme toi la balise à cet endroit…

    mais rien n’y fait! je pense que la solution est là mais je coince!

    merci bcp tout de même.

    #666463
    zenok
    Membre
    Chevalier WordPress
    314 contributions

    rien de neuf! j’ai beau chercher!

    #666464
    groove_attitude
    Participant
    Initié WordPress
    29 contributions

    bonjour,
    je cherche à faire une chose similaire. en enlevant les « 

  •  » et mettre « 

     » pour un affichage en diaporama… pas de solution pour le moment.
    :(

8 sujets de 1 à 8 (sur un total de 8)
  • Vous devez être connecté pour répondre à ce sujet.