WordPress二次開發批量去掉文章圖片的鏈接。有的童鞋可能要問了,為什么要去除掉圖片中的鏈接呢?這樣做最主要的原因是為了方便我們做網站的SEO優化,熟悉WordPress的朋友都知道,WordPress在發布文章的時候,插入圖片,有個默認的選項是“鏈接到媒體頁面”,如果不改成“無”的后果就是點擊文章的圖片時會在當前窗口跳轉到圖片頁面,不僅用戶體驗不好,而且造成搜索引擎蜘蛛爬去無法返回的不良后果,如下圖所示:
所有我們就需要批量去掉文章圖片的鏈接,讓蜘蛛更方便在我們的網站中爬行。具體實現方法如下:
一、將以下代碼復制到當前使用主題的functions.php文件中:
/* 去文章圖片鏈接*/add_filter( 'the_content','a_blank');function a_blank($c) {global $post;$s = array('/href="(.+?.(jpg|bmp|png|jepg|gif))"/i'=>'');foreach($s as$p => $r){$c = preg_replace($p,$r,$c);}return$c;}
這樣就可以實現以后生成的文章圖片和已經發布的文章中的圖片都會默認無鏈接,唯一瑕疵就是還會有a標簽,但是是空標簽,這沒什么影響,強迫癥可以用下面一個方法完美解決。
二、將以下代碼復制到當前使用主題的functions.php文件中(此方法對已發布文章不生效):
/* 去文章圖片鏈接*/update_option('image_default_link_type', 'none');
或
/* 去文章圖片鏈接*/function wpc_imagelink_setup() {$image_set = get_option( 'image_default_link_type' );if ($image_set !== 'none') {update_option('image_default_link_type', 'none');}}add_action('admin_init', 'wpc_imagelink_setup', 10);
擴展:
有的用戶可能會需要文章中的圖片鏈接在新窗口打開,將以下代碼復制到當前使用主題的functions.php文件中:
/* 文章圖片鏈接新窗口打開*/add_filter( 'the_content','a_blank');function a_blank($c) {global $post;$s = array('/href="(.+?.(jpg|bmp|png|jepg|gif))"/i'=>'href="$1"target="_blank"');foreach($s as$p => $r){$c = preg_replace($p,$r,$c);}return$c;}
有的則需要將沒有鏈接的圖片加上鏈接,這個分兩種情況:
一是鏈接為文章地址(同時添加alt與title屬性為文章標題),將以下代碼復制到當前使用主題的functions.php文件中:
/* 圖片自動鏈接到文章,添加標題和ALT屬性 */function auto_post_link($content) { global $post; $content = preg_replace('/</s*img/s+[^>]*?src/s*=/s*(/'|/")(.*?)//1[^>]*?//?/s*>/i', "<a href=/"".get_permalink()."/" title=/"".$post->post_title."/" ><img src=/"$2/" alt=/"".$post->post_title."/" /></a>", $content); return $content;}add_filter ('the_content', 'auto_post_link',0);
如果文章圖片較多,第一張圖片添加為文章鏈接,剩下的則只加alt與title屬性:
/*--------------------------------------自動為第一張圖片添加鏈接地址,其他圖片只加alt屬性,不加鏈接默認鏈接地址為當前文章的鏈接,alt屬性為當前文章的標題通過修改判斷語句if($count==1),可以為指定順序圖片添加鏈接,不局限于第一個圖片--------------------------------------*/$count = 0;function auto_image_handler($matches){ global $count,$post; $count++; if($count==1){//第一個圖片添加鏈接地址 return "<a href=/"".get_permalink()."/" title=/"".$post->post_title."/" ><img src=/"$matches[2]/" alt=/"".$post->post_title."/" /></a>"; } else{//其他圖片添加alt屬性 return "<img src=/"$matches[2]/" alt=/"".$post->post_title."/" /></a>"; }}function auto_post_link($content){ $content = preg_replace_callback('/</s*img/s+[^>]*?src/s*=/s*(/'|/")(.*?)//1[^>]*?//?/s*>/i', 'auto_image_handler',$content); return $content;}add_filter ('the_content', 'auto_post_link',0);
這里需要注意的是,使用上面的代碼后,由于替代了圖片的多余屬性,將導致圖片的對齊方式失效,大家自行取舍使用;
二是文章圖片本沒有鏈接,想加上圖片文件的鏈接,將以下代碼復制到當前使用主題的functions.php文件中:
//圖片默認連接到媒體文件(原始鏈接)update_option('image_default_link_type', 'file');以上就是WordPress二次開發批量去掉文章圖片的鏈接的全部內容,希望對大家的學習和解決疑問有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答
圖片精選