我使用以下脚本创建缩略图短代码,但这只能在循环或帖子内部工作。
/* Thumb Shortcode */
function my_img() {
if (has_post_thumbnail() ) {
$image_id = get_post_thumbnail_id();
$image_url = wp_get_attachment_image_src($image_id,'medium');
$image_url = $image_url[0];
$result = '<img src="'.$image_url.'" class="my_img" />';
return $result;
}
return;
}
add_shortcode ('my_img', 'my_img');
有没有简单的方法来修改它,以便我可以在任何地方使用帖子ID?
像这样:
<?php echo do_shortcode('[my_img post="100"]'); ?>
答案 0 :(得分:0)
此函数将使用shortcode_atts
获取post shortcode属性(如果存在),否则它将使用循环中的拇指:
function my_img_func($atts) {
$atts = shortcode_atts(array(
'post' => null
), $atts, 'my_img');
if($atts['post'] != null) {
if (has_post_thumbnail((int) $atts['post']) ) {
$image_id = get_post_thumbnail_id((int) $atts['post']);
$image_url = wp_get_attachment_image_src($image_id,'medium');
$image_url = $image_url[0];
$result = '<img src="'.$image_url.'" class="my_img" />';
return $result;
}
} else {
if (has_post_thumbnail() ) {
$image_id = get_post_thumbnail_id();
$image_url = wp_get_attachment_image_src($image_id,'medium');
$image_url = $image_url[0];
$result = '<img src="'.$image_url.'" class="my_img" />';
return $result;
}
}
return '';
}
add_shortcode ('my_img', 'my_img_func');