web-dev-qa-db-fra.com

Si la catégorie de messages est "voitures", afficher l'image

Quelqu'un peut-il traduire ceci:

Si la catégorie de messages est "voitures" Afficher l'image

Par exemple:

J'ai un article avec la catégorie 'voiture' et un autre article avec la catégorie 'banane'. Non, je cherche un moyen d'ajouter une image de voiture à chaque article de la catégorie 'voiture'. Et l'image de la banane à chaque article avec la catégorie "banane". Par défaut (si l'article n'a pas de catégorie), je veux montrer la même image de voiture.

1
Paul

Vous pouvez utiliser la balise conditionnelle has_catgeory . Vous pouvez faire quelque chose comme ça

if(has_category( 'cars' ) || has_category( 'uncategorized' )) {
    //display cars image
}elseif(has_category( 'banana' )) {
    //display banana image
}

De vos commentaires, voici votre code

<?php if(has_category( 'Update' ) || has_category( 'uncategorized' )) { ?>
    <img alt="Hello!" src="<?php bloginfo('template_directory'); ?>/img/loud.png"> 
<?php } elseif(has_category( 'Event' )) { ?>
    <img alt="Hello!" src="<?php bloginfo('template_directory'); ?>/img/event.png"> 
<?php } ?>

MODIFIER

La balise conditionnelle in_category peut également être utilisée à cette fin.

EDIT 2

Pour la deuxième partie de votre question, consultez ce message de @JohannesPille on SO. Voici le post reposté.

VEUILLEZ NOTER: J'ai voté la réponse à la hausse pour SO. Si quelqu'un le juge inapte, annulez cette modification: -)

L'action create_category est exécutée lorsqu'une nouvelle catégorie est créée.

Vous souhaitez que votre fonction de création de catégorie soit activée lorsque le thème est activé. L'action pertinente est after_setup_theme .

Déposez ceci dans le fichier functions () de votre thème et vous devriez être prêt à partir:

function create_my_cat () {
    if (file_exists (ABSPATH.'/wp-admin/includes/taxonomy.php')) {
        require_once (ABSPATH.'/wp-admin/includes/taxonomy.php'); 
        if ( ! get_cat_ID( 'Testimonials' ) ) {
            wp_create_category( 'Testimonials' );
        }
    }
}
add_action ( 'after_setup_theme', 'create_my_cat' );
1
Pieter Goosen

La structure de contrôle appropriée serait un switch case , ce qui en fait un code plus lisible et maintenable. Voici un exemple dans une boucle.

<ol class="news-list">
    <?php while (have_posts()) : the_post(); ?>
        <li>
            <a href="<?php the_permalink(); ?>">
                <span class="post-date">
                    <?php 
                        $category = get_the_category();

                        switch ($category[0]->term_id){
                            // display an icon next to the news item, according to the category.
                            // more icons: http://fontawesome.io/icon/

                            case 3:
                            // private item
                            ?>
                            <i class="fa fa-lock"></i>
                            <?
                            break;

                            case 18:
                            // Headteachers' blog item
                            ?>
                            <i class="fa fa-graduation-cap"></i>
                            <?
                            break;

                            default:
                            ?>
                            <i class="fa fa-newspaper-o"></i>
                            <?
                            break;

                            } 
                            the_time('j F Y'); ?>
                </span>
                <h4><?php the_title();?></h4>
                <p class="post-resume"><?php html5wp_excerpt('html5wp_index','empty_readmore_link'); ?></p>
            </a>
        </li>
    <?php endwhile; ?>
</ol>
0
pixeline