使用title标签作为WordPress文章图片的alt属性

很多网站站长在发表文章的时候,往往会忘记给WordPress文章图片添加说明,就会导致大量文章图像缺少alt属性,不利于我们SEO优化,为了方便我们可以使用title标签作为WordPress文章图片的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);

标签

发表评论