web-dev-qa-db-fra.com

Afficher la vignette pour la catégorie?

J'ai actuellement un code où, dans mon category.php, il vérifie si la catégorie spécifique a des sous-catégories, et si c'est le cas, affichez-les en utilisant wp_list_categories.

J'adorerais avoir ces wp_list_categories pour afficher les vignettes. J'ai donc créé un nouveau marcheur, mais je ne peux pas comprendre comment afficher les vignettes.

Je serais bien de lui montrer l'image sélectionnée de mon dernier type de message personnalisé dans cette catégorie, ou d'utiliser un plugin.

J'ai actuellement le lecteur suivant dans mon functions.php:

 class Walker_Category_Parents extends Walker_Category {



function start_el(&$output, $category, $depth, $args) {
    global $wpdb;
    extract($args);


    $link2 = ''.$category->slug.'';
    $cat_name = esc_attr( $category->name );
    $cat_name = apply_filters( 'list_cats', $cat_name, $category );
    $link = '<a href="' . esc_attr( get_term_link($category) ) . '" ';
    $link .= 'title="' . esc_attr( strip_tags( apply_filters( 'category_description', $category->description, $category ) ) ) . '"';
    $link .= 'rel="'.$category->slug.'" ';
    $link .= '>';
    $link .= $cat_name . '</a>';
    if ( 'list' == $args['style'] ) {
        $output .= "\t<li";

        $children = $wpdb->get_results( "SELECT term_id FROM $wpdb->term_taxonomy WHERE parent=".$category->term_id );

        $children_count = count($children);

        $has_children = ($children_count != 0) ? ' parent-category' : '';

        $class = 'cat-item cat-item-' . $category->term_id . $has_children;
        if ( !empty($current_category) ) {
            $_current_category = get_term( $current_category, $category->taxonomy );
            if ( $category->term_id == $current_category )
                $class .=  ' current-cat';
            elseif ( $category->term_id == $_current_category->parent )
                $class .=  ' current-cat-parent';
        }
        $output .=  ' class="' . $class . '"';
        $output .= ">$link\n";
        $output .= "<img src='http://localhost/wp-content/themes/vom13/images/producten/";
        $output .= "$link2.png'>\n";
    } else {
        $output .= "\t$link<br />\n";
    }
}




}

Comme vous pouvez le voir, il recherche actuellement l'image dans un dossier, mais ce n'est absolument pas idéal, car je ne suis pas le seul à ajouter des catégories, mais je ne veux pas donner à tout le monde un accès FTP.

Des solutions?

Merci!

2
user31532

Il existe un excellent plugin appelé Taxonomy Images . Il vous permet de définir une image par catégorie à laquelle vous pouvez ensuite accéder de différentes manières.

C'est un peu génial car il utilise des filtres personnalisés pour renvoyer les images, mais la documentation est plutôt bonne et vous devriez pouvoir le comprendre.

== UPDATE == Voici un exemple rapide qui obtient l'image en fonction de son ID (je suppose que vous aurez l'objet $category que vous avez déjà dans votre extrait:

$images = get_option('taxonomy_image_plugin');
$cat_id = $category->term_taxonomy_id;
if( array_key_exists( $cat_id, $images ) ) {
    echo wp_get_attachment_image( $images[$cat_id] );
}

Voici une version légèrement développée de ce code sur les forums d'assistance.

0
mrwweb