北极寒流 » 网络资源 » 利用WordPress短代码实现显示外部网站缩略图功能 - 2013.10.10

利用WordPress短代码实现显示外部网站缩略图功能

WordPress显示外部网站缩略图可以用插件实现,不过这里给大家分享的是利用WordPress的短代码功能实现显示外部网站缩略图的。

把下面的代码加在主题的functions.php文件中

add_shortcode('ss_screenshot', 'ss_screenshot_shortcode');

function ss_screenshot_shortcode($atts){

$width = intval($atts['width']);
$width = (100 <= $width && $width <= 300) ? $width : 200;
$site = trim($atts['site']);
if ($site != ''){
$query_url =  'http://s.wordpress.com/mshots/v1/' . urlencode($site) . '?w=' . $width;
$image_tag = '<img class="ss_screenshot_img" alt="' . $site . '" width="' . $width . '" src="' . $query_url . '" />';
echo '<a class="ss_screenshot_link" href = "' . $site . '">' . $image_tag . '</a>';
}else{
echo 'Bad screenshot url!';
}
}

然后在需要显示外部网站缩略图的地方通过下面的代码调用(可以是在评论那里)。

注:上面代码中的http://s.wordpress.com如果被和谐,将无法显示缩略图,可换成http://s0.wp.com 或者https://s.wordpress.com或者http://s-origin.wordpress.com/

然后通过下面的短代码就可以显示外部网站缩略图了

[ss_screenshot width='300' site='http://amazon.com']

其中site后面的网址就是你要显示缩略图的网站。

扩展应用(利用自定义域自动缩略外部网址)

每次都要加短代码是否很麻烦?就比如本站的网址导航,如果每个页面都要加短代码的话,那工作量可是大了去了。试试自定义域吧。

修改文章的loop为如下代码

if (have_posts()) while (have_posts()) : the_post();

the_title();
$url = get_post_meta($post->ID, 'screenshot_url', true);
do_shortcode('[ss_screenshot width="280" site="' . $url . '"]');
the_content();

endif;
endwhile;

然后只要你文章中设置了'screenshot_url'自定义域(值为外部网站),就会自动显示其缩略图了。

效果演示http://www.articn.com/post/421.html

发表评论 【登录·注册】

所有留言都会被审核,请勿发布垃圾评论!

(必填)*