知更鸟近日发表文章《将title标签作为WordPress文章图片的alt》,提出了一种改良的自动设置图片alt属性的懒人方法。
其实现在新版wp中用古腾堡编辑器编辑文章时,我都直接在图片下方加figcaption了,title和alt都懒得写。
问题来了,可不可以修改知更鸟代码实现直接调取图片figcaption并加入alt属性呢?
方法其实相当简单,只要把知更鸟代码稍加修改便可。
/* Set FigCaption As Alt Attribute (PHP) */
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会造成一定混乱。以上代码未相应修改。
2021/7/17
今日找到更好的办法,使用JavaScript能够一劳永逸的解决上述使用php设置alt中的缺陷和不足。
不填alt不利于SEO。图片不利于SEO不是好事嘛!
@大致哈哈,也有道理!
好久没折腾了,我回头把这个加上~
but,其实我希望能怎么显示图片的 图像信息,光圈快门这些~
@牧羊人有呀,早写过,本博搜关键字exif。