您好,登錄后才能下訂單哦!
這篇文章主要講解了“實現對圖片seo的方法分享”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“實現對圖片seo的方法分享”吧!
首先,我們創建一個數據庫表來保管我們的圖片信息,以及對應的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地址訪問的圖片)
其次,我們需要有一些和數據庫打交道的函數,這由我們自己去撰寫。這些函數用來完成我們所要處理的插入、查詢、修改、刪除等操作。
接著,我們需要一個圖片處理函數image($src),這個函數的功能是將圖片的原地址進行轉換,輸出為一個經過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;
}
上述的函數中存在一個create_image()函數,即前一個步驟中提到的和數據庫打交道的函數。而我還創造了另一個函數img($src)=function(){echo image($src);}用來打印SEO化的地址。如果我們需要在主題中使用某一張圖片,我們就可以使用下面的代碼來做到:
代碼如下:
<img src="<?php img('https://cache.yisu.com/upload/information/20210311/300/23090.jpg'); ?>" />
當然,在上述的代碼中還是存在我所說的和數據庫打交道的函數。不過關鍵的在于修改the_content等中的img[src]值,同時我還進行了alt的修改,以讓圖片實現alt的SEO效果。
最后,我們需要真的能使用這些虛擬的圖片地址把圖片打印出來,我們先通過判斷$_SERVER["REQUEST_URI"]來了解當前的地址是不是我們準備好的虛擬地址。這里有一個小技巧,在一般的虛擬主機中,如果開啟了重寫功能,URI如果不存在,就會使用index.php模板,如果在BAE等云平臺上,就比較麻煩了,因為它們不支持這種URI段(主要指帶文件名后綴的段,如.jpg結尾),所以沒有辦法,我們需要加一個?來幫助,即第一個段為?img,而非img。這樣一來,/?img/my-test.jpg就可以被用作一張圖片的訪問地址了。
可是地址雖然可以被訪問,如何使這個訪問地址指向一張圖片呢?或許你會以為要修改.htaccess或其他重定向方法,而我卻想到了php的header()函數,因此選擇了使用header("Content-type: image/jpeg");來輸出一張圖片。這一點點破之后就好辦了,你可以查詢imagejpeg這個函數來了解如何在一個php網頁中打印一張圖片。但是需要注意的是,似乎也會存在例外,我在打印png圖片的時候始終無法打印出來,迫不得已的情況下使用了下面這段代碼。
代碼如下:
header("Content-Type: image/png");
echo file_get_contents($src);
這雖然不嚴格,卻真的能夠打印出一張圖片來。
感謝各位的閱讀,以上就是“實現對圖片seo的方法分享”的內容了,經過本文的學習后,相信大家對實現對圖片seo的方法分享這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。