web-dev-qa-db-ja.com

条件付きショートコード画像表示

ショートコードに問題がありました..私はそれが全体のトピック/カテゴリに応じて適切な画像が表示されるように条件を設定する場所と方法を知らないのですが。

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' );

問題なんらかの理由で$ subjectの値が他の値のように更新され、ショートコードを通して渡されず、画像が変化しないその

間違っていることは?

(ちょうど要求ごとに追加されます)これは私が投稿を書くときに私がワードプレスエディタで惹きつけているショートコードです:

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

私はあなたの問題を正確に再現することができませんでした、しかしここに助言があります:ユーザが主題のために悪い値を入れた場合のためにいくつかのデフォルトの振舞いを含めてください:

    // 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" />';
    }

そうすれば、たとえ彼らがあなたに悪いデータを与えたとしても、常にイメージがあるでしょう。

1
Andy Adams