好吧,我整天都在研究这个问题,但到处都找不到解决方案。我在图像上传屏幕中创建了一个自定义字段(首次找到信息here). 该字段存储摄影师的姓名,以给予他/她的信任。那里一切都很好。
我搞不懂的是如何将这些信息输入到整个网站的每个图像标题数据中。我希望我的图片信用字段将自己附加到整个网站的所有图片标题中,这样每个图片标题都会读像“我的标题(按摄影师姓名)”。
我已经得出的结论很接近,但还不够好。我可以通过在现有帖子上使用“image”类型的“get\\u children()”,然后在每个结果上调用“get\\u post\\u meta()”,从我的自定义字段中获取信息。然后,我可以使用此信息将其添加到帖子特色图像中,方法是在调用时更改“get\\u the\\u post\\u thumbnail()”中的标题属性。我需要的是能够像这个网站一样在所有图片上做一些事情,而不仅仅是特色图片。
我觉得应该在核心的某个地方定义图像的显示方式。也许我可以在我自己的主题中用一个同名文件来覆盖它,或者通过声明一个函数来覆盖默认行为。也许我可以用一个过滤器或钩子。然而,我找不到任何文档来帮助我,我几乎没有想法了。
任何和所有的想法都会很感激,即使它们只是部分想法。
注意:我尝试链接我的所有功能以便于参考,但垃圾邮件预防不允许我发布那么多链接,因此我将在此处列出它们:
法典。wordpress。组织/功能\\u参考/获取\\u子项。wordpress。组织/职能\\参考/获取\\发布\\元。wordpress。组织/职能\\u参考/获取\\u帖子\\u缩略图
最合适的回答,由SO网友:Brian Fegter 整理而成
您可以使用“wp\\u get\\u attachment\\u image\\u attributes”挂钩创建过滤器。将此放在您的函数中。php文件。
function filter_image_title($attr, $attachment = null){
//Find your $photographer with $attachment->ID
$attr[\'title\'] .= \' (\' . __(\'Photographed by\', \'foobar\') . \' \' . $photographer . \')\';
return $attr;
}
add_filter(\'wp_get_attachment_image_attributes\', \'filter_image_title\', 10, 2);
SO网友:Roxanne Ready
感谢@Brian,我写了以下内容。然而,出于某种原因,这仍然只会影响特色图片。如果帖子没有特色图片,它不会像我预期的那样影响第一张图片。我完全注释掉了我以前的代码,它是为了影响特色图片,所以它不能被保留。有什么想法吗?
function filter_image_title($attr, $attachment = null){
//Find photo credit with $attachment->ID
$attachment_credit = get_post_meta($attachment->ID, \'_waz-image-credit\', true);
//Store original image info
$attr[\'title\'] = get_post($attachment->ID)->post_title;
$attr[\'alt\'] = get_post_meta($attachment->ID, \'_wp_attachment_image_alt\', true);
//If there\'s no ALT text, use the title (pre-credit addition)
if(!$attr[\'alt\'])
$attr[\'alt\'] = $attr[\'title\'];
//If a credit has been added to the image, add this to the title
if($attachment_credit)
$attr[\'title\'] .= \' (\' . \'Photographed by\' . \' \' . $attachment_credit . \')\';
return $attr;
}
add_filter(\'wp_get_attachment_image_attributes\', \'filter_image_title\', 10, 2);