鹿泽鹿泽  2024-08-26 16:49:36 鹿泽笔记 隐藏边栏  0 

WordPress站长在发表文章时,往往不注意给图片添加说明(ALT),导致大量文章中的图像缺少ALT属性,不利于SEO。网上有很多自动给文章图片添加ALT属性的教程,本文分享一下我自己使用的。

只需将下面的代码添加到当前主题函数模板functions.php中即可。

function callback($buffer) {
/* modify buffer here, and then return the updated code*/
$title='';
$res = preg_match('/<title>(.*?)<\/title>/', $buffer, $title_matches);
 
if ($res) {
/*Clean up title: remove EOL's and excessive whitespace.*/
$title = preg_replace('/\s+/', ' ', $title_matches[1]);
$title = trim($title);
}
 
preg_match_all('/<img (.*?)\/>/', $buffer, $images);
if(!is_null($images)) {
foreach($images[1] as $index => $value) {
preg_match('/alt="(.*?)"/', $value, $img);
preg_match('/alt=\'(.*?)\'/', $value, $img2);
if(!is_null($images)) {
if((!isset($img[1]) || $img[1] == '') || (!isset($img2[1]) || $img2[1] == '')) {
$new_img = str_replace('<img', '<img alt="'.$title.'"', $images[0][$index]);
$buffer = str_replace($images[0][$index], $new_img, $buffer);
}
}
}
}
 
return $buffer;
}
 
function buffer_start() { ob_start(); }
 
function buffer_end() { echo callback(ob_get_clean()); }
 
add_action('wp', 'buffer_start', 0);
add_action('wp_footer', 'buffer_end');

代码中虽然加了缓冲区,但还是会降低效率,建议安装静态缓存插件。

附其它方法:

function img_alt($content) {
global $post;
preg_match_all('/<img (.*?)\/>/', $content, $images);
if(!is_null($images)) {
foreach($images[1] as $index => $value) {
$new_img = str_replace('<img', '<img alt="'.get_the_title().'-'.get_bloginfo('name').'" title="'.get_the_title().'-'.get_bloginfo('name').'"', $images[0][$index]);
$content = str_replace($images[0][$index], $new_img, $content);
}
}
return $content;
}
add_filter('the_content', 'img_alt', 99999);
1、文章版权归作者所有,未经允许请勿转载。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
3、咨询请联系QQ:526009505