web-dev-qa-db-fra.com

Puis-je définir une image sélectionnée par défaut pour une catégorie?

Je suis en train de créer un site avec un thème qui tire parti de la fonctionnalité "Image en vedette" de WordPress. Mes utilisateurs finaux n'étant pas la technologie la plus sophistiquée au monde, j'aimerais configurer les choses de manière à ce que les catégories se voient attribuer une "image sélectionnée" par défaut. Dans le cas où plusieurs catégories seraient affectées à un poste, il s'agirait simplement de la première.

Existe-t-il un plugin ou un moyen de le coder?

10
Dillie-O

Dans votre modèle où l'image sélectionnée est affichée: <?php the_post_thumbnail( 'thumbnail' ); ?>, vous pouvez la subordonner à la condition que l'image sélectionnée soit définie, puis définissez-la par défaut comme vous le souhaitez si elle n'est pas définie.

Une façon de faire est de mettre toutes les images par défaut dans un répertoire et de les nommer pour les catégories, par exemple. news.jpg et reviews.jpg alors au lieu d'utiliser <?php the_post_thumbnail( 'thumbnail' ); ?> pour afficher votre image sélectionnée, vous utiliseriez ceci:

<?php 
   if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())  ) { 
      the_post_thumbnail('thumbnail');
   } else { ?>
      <img src="whatever/directory/<?php $category = get_the_category(); echo $category[0]->cat_name; ?>.jpg" /> <?php }
   endif;
} ?>

Ainsi, dans l'exemple ci-dessus, si l'article est dans la catégorie actualités et que votre auteur n'a pas défini l'image sélectionnée, il sera par défaut celui de l'image stockée à http://www.yoursite/whatever/directory/news.jpg.

13
matt

J'ai rencontré quelques problèmes avec les noms de catégories ayant des espaces. J'ai légèrement modifié le code ci-dessus pour l'adapter à mes besoins.

<?php if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())) : ?>

<?php the_post_thumbnail('thumbnail'); ?>

<?php else :?>

<img src="whatever/directory/<?php $category = get_the_category(); echo $category[0]->cat_ID; ?>.jpg" /> 

<?php endif;?>

fondamentalement juste changer

echo $category[0]->cat_name;

à

echo $category[0]->cat_ID;

ce qui rendra votre image 16.jpg ou 3.jpg ce qui correspond à votre numéro de catégorie.

2
brass

Une façon plus propre de faire ce qui précède;)

if ( ( function_exists( 'has_post_thumbnail' ) ) && ( has_post_thumbnail() ) ) : 
    the_post_thumbnail( 'thumbnail' );
else :
    ?><img src="whatever/directory/<?php 
        $category = get_the_category(); echo $category[0]->cat_name; 
        ?>.jpg" /><?php
endif;
2
lemonfresh design
<?php if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())) : ?>

<?php the_post_thumbnail('thumbnail'); ?>

<?php else :?>

<img src="<?php bloginfo('template_directory'); ?>/your image directory name in theme folder/<?php $category = get_the_category(); echo $category[0]->cat_name; ?>.jpg" /> 

<?php endif;?>
2
Nitin

J'ai utilisé avec succès Taxonomy Images de Michael Fields - il ajoute des fonctions de gestion à la page d'édition des catégories/taxonomie, de sorte que les images présentées fonctionnent pour les taxonomies comme pour les posts/pages. A toutes les fonctions dont vous avez besoin pour votre thématisation.

snap of the custom taxonomy admin screen

1
ptim