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

效果:

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

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

共有 4 条评论

  1. Google Chrome 83 Google Chrome 83 Windows 10 Windows 10

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

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注