我有“员工”的自定义帖子类型。该帖子类型具有“职位”(医生,护士等)的分类。我正在尝试创建一个短代码,允许用户只返回页面上特定分类的工作人员。
示例:
[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');
感谢您提供的任何帮助。
答案 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
)
);