/ 博客 / 249阅

将figcaption标签作为图片alt属性

知更鸟近日发表文章《将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');

效果:

经典华夫
经典华夫
figcaption标签自动作为图片alt属性

注:如部分图片已插入alt会造成一定混乱。以上代码未相应修改。


2021/7/17

今日找到更好的办法,使用JavaScript能够一劳永逸的解决上述使用php设置alt中的缺陷和不足。

# 写于四年前,改于三年前
           

4

  1. 大致

    不填alt不利于SEO。图片不利于SEO不是好事嘛!

    Firefox 78 · Windows 7
    1. S̆̈

      @大致哈哈,也有道理!

      Wordpress App 15 · iPhone iOS 13.5.1
  2. 牧羊人

    好久没折腾了,我回头把这个加上~

    but,其实我希望能怎么显示图片的 图像信息,光圈快门这些~

    Google Chrome 83 · Windows 10
    1. S̆̈

      @牧羊人有呀,早写过,本博搜关键字exif。

      Wordpress App 15 · iPhone iOS 13.5.1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注