溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

實(shí)現(xiàn)對(duì)圖片seo的方法分享

發(fā)布時(shí)間:2021-09-18 11:42:16 來(lái)源:億速云 閱讀:155 作者:chen 欄目:互聯(lián)網(wǎng)科技

這篇文章主要講解了“實(shí)現(xiàn)對(duì)圖片seo的方法分享”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“實(shí)現(xiàn)對(duì)圖片seo的方法分享”吧!

首先,我們創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)表來(lái)保管我們的圖片信息,以及對(duì)應(yīng)的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);

這個(gè)數(shù)據(jù)表是用來(lái)保存所有我們要進(jìn)行處理的圖片。(注意,有這么幾種圖片是我們不需要處理的:本站的圖片,非http地址訪問(wèn)的圖片)

其次,我們需要有一些和數(shù)據(jù)庫(kù)打交道的函數(shù),這由我們自己去撰寫。這些函數(shù)用來(lái)完成我們所要處理的插入、查詢、修改、刪除等操作。

接著,我們需要一個(gè)圖片處理函數(shù)image($src),這個(gè)函數(shù)的功能是將圖片的原地址進(jìn)行轉(zhuǎn)換,輸出為一個(gè)經(jīng)過(guò)SEO化的地址,且又能被訪問(wèn)。我在我的程序中如此進(jìn)行處理:

代碼如下:


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;
}

上述的函數(shù)中存在一個(gè)create_image()函數(shù),即前一個(gè)步驟中提到的和數(shù)據(jù)庫(kù)打交道的函數(shù)。而我還創(chuàng)造了另一個(gè)函數(shù)img($src)=function(){echo image($src);}用來(lái)打印SEO化的地址。如果我們需要在主題中使用某一張圖片,我們就可以使用下面的代碼來(lái)做到:

代碼如下:


<img src="<?php img('https://cache.yisu.com/upload/information/20210311/300/23090.jpg'); ?>" />

當(dāng)然,在上述的代碼中還是存在我所說(shuō)的和數(shù)據(jù)庫(kù)打交道的函數(shù)。不過(guò)關(guān)鍵的在于修改the_content等中的img[src]值,同時(shí)我還進(jìn)行了alt的修改,以讓圖片實(shí)現(xiàn)alt的SEO效果。

最后,我們需要真的能使用這些虛擬的圖片地址把圖片打印出來(lái),我們先通過(guò)判斷$_SERVER["REQUEST_URI"]來(lái)了解當(dāng)前的地址是不是我們準(zhǔn)備好的虛擬地址。這里有一個(gè)小技巧,在一般的虛擬主機(jī)中,如果開啟了重寫功能,URI如果不存在,就會(huì)使用index.php模板,如果在BAE等云平臺(tái)上,就比較麻煩了,因?yàn)樗鼈儾恢С诌@種URI段(主要指帶文件名后綴的段,如.jpg結(jié)尾),所以沒(méi)有辦法,我們需要加一個(gè)?來(lái)幫助,即第一個(gè)段為?img,而非img。這樣一來(lái),/?img/my-test.jpg就可以被用作一張圖片的訪問(wèn)地址了。

可是地址雖然可以被訪問(wèn),如何使這個(gè)訪問(wèn)地址指向一張圖片呢?或許你會(huì)以為要修改.htaccess或其他重定向方法,而我卻想到了php的header()函數(shù),因此選擇了使用header("Content-type: image/jpeg");來(lái)輸出一張圖片。這一點(diǎn)點(diǎn)破之后就好辦了,你可以查詢imagejpeg這個(gè)函數(shù)來(lái)了解如何在一個(gè)php網(wǎng)頁(yè)中打印一張圖片。但是需要注意的是,似乎也會(huì)存在例外,我在打印png圖片的時(shí)候始終無(wú)法打印出來(lái),迫不得已的情況下使用了下面這段代碼。

代碼如下:


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

這雖然不嚴(yán)格,卻真的能夠打印出一張圖片來(lái)。

感謝各位的閱讀,以上就是“實(shí)現(xiàn)對(duì)圖片seo的方法分享”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)實(shí)現(xiàn)對(duì)圖片seo的方法分享這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

seo
AI