完成对照片seo的方式

2021-03-06 14:04 admin

本文完成照片应用的src为本站网站域名能浏览到的详细地址;这个详细地址是虚似的,而并不是在这个部位的确有1张图(尽管浏览它的确能看到图,这里应用了远程控制照片抓取技术性,但并沒有储存在当地),这样就节约了本站的储存室内空间,这是本程序流程最大的亮点;更加突显的是,以便考虑seo要求,img标识的src和alt特性都以所属文章内容的别称做为重要字,能够说将这1一部分保证极致,并且这1切全是全自动化的。我想这1作用的要求量不1定许多,而在中国将会還是第1粒。

最先,大家建立1个数据信息库表来存放大家的照片信息内容,和对应的src。


拷贝编码
编码以下:

$sql = "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}seo_image`(
`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`image_name` char(250) NOT NULL,
`image_type` text NOT NULL,
`image_src` longtext NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;";
$wpdb->query($sql);

这个数据信息表是用来储存全部大家要开展解决的照片。(留意,有这么几种照片是大家不必须解决的:本站的照片,非http详细地址浏览的照片)

其次,大家必须有1些和数据信息库打交道的涵数,这由大家自身去编写。这些涵数用来进行大家所要解决的插进、查寻、改动、删掉等实际操作。

接着,大家必须1个照片解决涵数image($src),这个涵数的作用是将照片的原详细地址开展变换,輸出为1个历经SEO化的详细地址,且又能被浏览。我在我的程序流程中这般开展解决:


拷贝编码
编码以下:

function image($src){
global $slipForImg;
if(strpos($src,'http') !== 0)return $src;
if(strpos($src,'http') === 0 && strpos($src,get_bloginfo('url')) === 0)return $src;
$imageinfo = pathinfo($src);
$image_ext = $imageinfo['extension'];
if(
strpos($image_ext,'jpg') !== 0
&& strpos($image_ext,'jpeg') !== 0
&& strpos($image_ext,'gif') !== 0
&& strpos($image_ext,'png') !== 0
)return $src;
$image = create_image($src);
return get_bloginfo('url')."/{$slipForImg}/".$image->image_name.'.'.$image->ID.'.'.$image->image_type;
}

上述的涵数中存在1个create_image()涵数,即前1个流程中提到的和数据信息库打交道的涵数。而我还造就了另外一个涵数img($src)=function(){echo image($src);}用来复印SEO化的详细地址。假如大家必须在主题中应用某1张照片,大家便可以应用下面的编码来保证:


拷贝编码
编码以下:

<img src="<?php img('https://www.jb51.net/test.jpg'); ?>" />

自然,在上述的编码中還是存在我所说的和数据信息库打交道的涵数。但是重要的在于改动the_content等中的img[src]值,另外我还开展了alt的改动,以让照片完成alt的SEO实际效果。

最终,大家必须真的能应用这些虚似的照片详细地址把照片复印出来,大家先根据分辨$_SERVER["REQUEST_URI"]来掌握当今的详细地址是否大家提前准备好的虚似详细地址。这里有1个小窍门,在1般的虚似主机中,假如打开了重新写过作用,URI假如不存在,就会应用index.php模版,假如在BAE等云服务平台上,就较为不便了,由于它们不适用这类URI段(关键指带文档名后缀的段,如.jpg末尾),因此沒有方法,大家必须加1个?来协助,即第1个段为?img,而非img。这样1来,/?img/my-test.jpg便可以被用作1张照片的浏览详细地址了。

但是详细地址尽管能够被浏览,怎样使这个浏览详细地址指向1张照片呢?也许你会认为要改动.htaccess或别的重定项方式,而我却想起了php的header()涵数,因而挑选了应用header("Content-type: image/jpeg");来輸出1张照片。这1点点破以后就好办了,你能够查寻imagejpeg这个涵数来掌握怎样在1个php网页页面中复印1张照片。可是必须留意的是,好像也会存在列外,我在复印png照片的情况下自始至终没法复印出来,不得已的状况下应用了下面这段编码。


拷贝编码
编码以下:

header("Content-Type: image/png");
echo file_get_contents($src);

这尽管不严苛,却真的可以复印出1张照片来。