知更鸟近日发表文章《将 title 标签作为 WordPress 文章图片的 alt》,提出了一种改良的自动设置图片 alt 属性的懒人方法。
其实现在新版 wp 中用古腾堡编辑器编辑文章时,我都直接在图片下方加 figcaption 了,title 和 alt 都懒得写。
问题来了,可不可以修改知更鸟代码实现直接调取图片 figcaption 并加入 alt 属性呢?
方法其实相当简单,只要把知更鸟代码稍加修改便可。
/* figcaption标签作为alt属性 */
function callback($buffer) {
$figcaption='';
$res = preg_match_all('/<figcaption>(.*?)<\/figcaption>/', $buffer, $figcaption_matches);
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 ($res) {
$figcaption = $figcaption_matches[1][$index];
}
if(!is_null($images)) {
if((!isset($img[1]) || $img[1] == '') || (!isset($img2[1]) || $img2[1] == '')) {
$new_img = str_replace('<img', '<img alt="'.$figcaption.'"', $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');
效果:


注:如部分图片已插入 alt 会造成一定混乱。以上代码未相应修改。
不填 alt 不利于 SEO。图片不利于 SEO 不是好事嘛!
@大致 哈哈,也有道理!
好久没折腾了,我回头把这个加上~
but,其实我希望能怎么显示图片的 图像信息,光圈快门这些~
@牧羊人 有呀,早写过,本博搜关键字 exif。