在缩略图短代码中添加帖子ID请求

时间:2015-09-17 15:47:33

标签: php wordpress

我使用以下脚本创建缩略图短代码,但这只能在循环或帖子内部工作。

/* 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"]'); ?>

1 个答案:

答案 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');