代码的这一部分定义了可以通过短代码传递的参数:
extract(shortcode_atts(array(
"posts" => \'8\',
"columns" => \'4\',
"category" => \'\',
"style" => \'text-normal\',
"image_height" => \'auto\',
"show_date" => \'true\',
"excerpt" => \'true\',
), $atts));
这允许您稍后将此值用作$posts、$columns等等。如果在短代码中未传递任何值,则将使用默认值。在这种情况下,$posts=8(要显示的帖子数量)
这是根据传递的值获取帖子的查询:
$args = array(
\'post_status\' => \'publish\',
\'post_type\' => \'post\',
\'category_name\' => $category,
\'posts_per_page\' => $posts
);
因此,如果您希望能够通过快捷码传递帖子类型,可以执行以下操作:
extract(shortcode_atts(array(
"post_type" => \'post\',
"posts" => \'8\',
"columns" => \'4\',
"category" => \'\',
"style" => \'text-normal\',
"image_height" => \'auto\',
"show_date" => \'true\',
"excerpt" => \'true\',
), $atts));
您可以修改查询以使用该值:
$args = array(
\'post_status\' => \'publish\',
\'post_type\' => $post_type,
\'category_name\' => $category,
\'posts_per_page\' => $posts
);
编写快捷码时,您可以执行以下操作
[blog_posts post_type="my_custom_post_type"]
同样的想法也可以通过自定义分类法实现。如果您只使用一种自定义帖子类型,而且这种类型永远不会更改,那么您可以跳过第一步,直接更改查询。还可以查看codex以了解wp\\U查询的工作原理,以及它期望的值:
http://codex.wordpress.org/Class_Reference/WP_Query