web-dev-qa-db-fra.com

Affichage d'image shortcode conditionnel

Vous avez un problème avec un shortcode .. Je ne sais pas où et comment régler la condition afin d'afficher la bonne image en fonction du sujet/de la catégorie de la ..

Aide Plz :)

function postInfoBoxSc( $atts ) {
    extract( shortcode_atts( array(
        'subject' => 'Category type',
        'difficulty' => 'User Types',
        'completiontime' => 'completion Time'
    ), $atts ) );

        // Set image acorring to guide type
        if ($subject == 'wordpress') {
            $subjectImg = '<img src="'.get_bloginfo('template_url').'/img/postInfoBox/wordpress.png" alt="מדריך וורדפרס" />';
        } elseif ($subject == 'web design') {
            $subjectImg = '<img src="'.get_bloginfo('template_url').'/img/postInfoBox/webDesign.png" alt="מדריך בניית אתרים" />';
        } elseif ($subject == 'facebook') {
            $subjectImg = '<img src="'.get_bloginfo('template_url').'/img/postInfoBox/facebook.png" alt="מדריך פייסבוק" />';
        } elseif ($subject == 'RSS') {
            $subjectImg = '<img src="'.get_bloginfo('template_url').'/img/postInfoBox/rss.png" alt="מדריך RSS" />';
        }

    return '
    <br class="clear" />
    <div class="postInfoBox">
        '. $subjectImg .'
        <h5>Guide information:</h5>
        <ul>
            <li><strong>Category:</strong> '. $subject .'</li>

                    <li><strong>User Lever:</strong> '. $difficulty .'</li>

                    <li><strong>completion Time:</strong> '. $completiontime .'</li>

        </ul>
    </div>
    ';
}
add_shortcode( 'postInfoBox', 'postInfoBoxSc' );

Le problème Pour une raison quelconque, la valeur de $ subjectentent est mise à jour comme les autres valeurs et n'est pas transmise via le shortcode et l'image ne change pas car de ça

Qu'est-ce que je fais mal ??

(vient d’être ajouté à la demande) c’est le shortcode que je saisis dans l’éditeur wordpress lors de la rédaction d’un message:

[postInfoBox subject="somthing" difficulty="hard" completiontime="2-5 minuts"]
1
Sagive SEO

Je n'ai pas été en mesure de reproduire votre problème exactement, mais voici un conseil: incluez un comportement par défaut, au cas où l'utilisateur mettrait une valeur incorrecte pour le sujet:

    // Set image acorring to guide type
    if ($subject == 'wordpress') {
        $subjectImg = '<img src="'.get_bloginfo('template_url').'/img/postInfoBox/wordpress.png" alt="מדריך וורדפרס" />';
    } elseif ($subject == 'web design') {
        $subjectImg = '<img src="'.get_bloginfo('template_url').'/img/postInfoBox/webDesign.png" alt="מדריך בניית אתרים" />';
    } elseif ($subject == 'facebook') {
        $subjectImg = '<img src="'.get_bloginfo('template_url').'/img/postInfoBox/facebook.png" alt="מדריך פייסבוק" />';
    } elseif ($subject == 'RSS') {
        $subjectImg = '<img src="'.get_bloginfo('template_url').'/img/postInfoBox/rss.png" alt="מדריך RSS" />';
    } else {
        // Add default case
        $subject = "Default here";
        $subjectImg = '<img src="'.get_bloginfo('template_url').'/img/postInfoBox/default.png" alt="מדריך RSS" />';
    }

De cette façon, il y aura toujours une image même s'ils vous transmettent de mauvaises données.

1
Andy Adams