1

「タイプ」の定義された分類法でスタッフメンバーのカスタム投稿タイプを表示する次のカスタムショートコードがあります。ユーザーが出力のレイアウト スタイル (列や行など) を定義できるようにする 2 番目の属性を追加しようとしています。ショートコードは次のようになります。

[staff type="international" style="rows"]

デフォルト値の設定を含め、属性を取得するためのすべてのコーディングがあると思いますが、if ステートメントを取得して出力を変更する方法がわかりません。最初の「$output .=」行の直前に行く必要があるようです。

function get_staff($atts) {
    extract( shortcode_atts( array( 
        'type' => 'international', 
        'style' => 'rows'
        ), $atts ) );

    add_filter( 'posts_orderby' , 'posts_orderby_lastname' );

    $loop = new WP_Query(
        array (
            'post_type' => 'staff',
            'orderby' => 'title',
            'staff-type' => $type,
            'style' => $style
        )
    );

    remove_filter( 'posts_orderby' , 'posts_orderby_lastname' );

    if ($loop->have_posts()) {
        $output = '<div class="staff">';

        while($loop->have_posts()){
            $loop->the_post();
            $meta = get_post_meta(get_the_id());
            // Attributes Array for Featured Image Below
            $attr = array(
                                'title' => get_the_title(),
                                'alt' => get_the_title(),
                                'class' => 'img_frame'
                            );
            $output .= '
                <div class="row-fluid" style="border-bottom: 1px solid #EEE; margin-bottom: 16px; padding-bottom: 16px;">
                <div class="span3">' . get_the_post_thumbnail($post->ID, 'small', $attr) . '</div>
                <div class="span9"><h3>' . get_the_title()  . '</h3>
                ' . get_the_content() . '
            </div></div>
        ';
    }
    $output .= "</div>";
} else {
    $output = 'No Staff Meet This Criteria Yet.';
}

return $output;
};

// Create Last Name Sort For Staff Custom Post Type
function posts_orderby_lastname ($orderby_statement) 
{
  $orderby_statement = "RIGHT(post_title, LOCATE(' ', REVERSE(post_title)) - 1) ASC";
    return $orderby_statement;
}


add_shortcode('staff', 'get_staff'); 
4

1 に答える 1