WordPress短代码添加分类属性

时间:2013-05-06 13:56:17

标签: wordpress taxonomy custom-post-type shortcode

我有“员工”的自定义帖子类型。该帖子类型具有“职位”(医生,护士等)的分类。我正在尝试创建一个短代码,允许用户只返回页面上特定分类的工作人员。

示例:

  [staff position="doctors"] 

我已经尝试过一些教程,但似乎无法让这个工作。这是我到目前为止的代码,它返回所有员工。

function get_staff($atts) {
$loop = new WP_Query(
    array (
        'post_type' => 'staff',
        'orderby' => 'title'
    )
);

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

    while($loop->have_posts()){
        $loop->the_post();
        $meta = get_post_meta(get_the_id());

        $output .= '
            <div class="staff" style="float: left; display: block; border: 1px solid #CCC; margin: 10px; padding: 12px; background-color: #eee;">
                <a href="' . get_permalink() . '">
                    ' . get_the_post_thumbnail($post->ID, 'thumbnail') . '<br />
                ' . get_the_title()  . '</a><br />
                ' . get_the_excerpt() . '
            </div>
        ';
    }
    $output .= "</div>";
} else {
    $output = 'No Staff Added Yet.';
}

return $output;
};

add_shortcode('staff', 'get_staff'); 

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:2)

您需要extract the attribute并将其添加到您的查询中。

extract( shortcode_atts( array( 'position' => 'doctors' ), $atts ) ); // $position variable will be initialized to 'doctors' if the shortcode is missing the 'position' parameter

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