我正在自定义帖子类型中显示帖子库,在我的单个自定义中使用以下内容。php模板:
<?php echo do_shortcode(\'[gallery id="\'.$post->ID.\'" link="file" columns="5" orderby="menu_order"]\'); ?>
输出中包含的内容之一是
title="filename" 在
<img> 标记,如下所示:
<img width="150" height="150" src="http://mydomain.com/wp-content/uploads/DSC_0036-150x150.jpg" class="attachment-thumbnail" alt="DSC_0036" title="DSC_0036" />
我不想输出title属性。大多数情况下,我不希望在悬停文本中出现糟糕的文件名,但有数百幅图像,我不准备进入媒体库编辑每幅图像的标题。我更愿意更改
alt 可能是帖子名的属性。
有没有办法过滤库以在alt和title属性中输出帖子名称,而不是文件名?
最合适的回答,由SO网友:Jan Fabry 整理而成
这个[gallery] 短代码由解析gallery_shortcode(), 哪个呼叫wp_get_attachment_link(), 依次调用wp_get_attachment_image(). 后一个函数写入<img> 贴上标签title 属性你很幸运,因为属性已被过滤wp_get_attachment_image_attributes, 这样你就可以钩住它title.
要做到这一点,您需要在调用短代码之前附加挂钩,然后在调用后将其删除。如果是一次性的,您可以在模板中执行此操作,或者,如果您更高级,您可以“劫持”[gallery] 使用您自己的函数添加挂钩、调用原始gallery_shortcode() 函数,并移除挂钩。