是否将“alt”属性文本显示为标题?

时间:2016-12-09 作者:Chuck

我们正在将一个大型报纸网站从Drupal迁移到WordPress,我的最后一个编码调整涉及在文章帖子中显示来自图像的遗留标题信息。这些图片的标题信息包含在HTML的“alt”和“title”属性中,因此我基本上需要在文章帖子的模板中显示这些信息。有没有关于如何设置的建议?下面是一篇文章中图像的一些示例代码:

<img src="/directory/image/00%202016%20NEWS%20PHOTOS/12%20December/match%20race%20waterfront.jpg" alt="Boats dash past the Charlotte Amalie waterfront during Sunday\'s CAMR action. (Photo provided by the Carlos Aguilar Match Race)" title="Boats dash past the Charlotte Amalie waterfront during Sunday\'s CAMR action. (Photo provided by the Carlos Aguilar Match Race)" width="280" vspace="4" hspace="8" height="187" border="1" align="left" />

我们要做的是将“alt”或“title”属性中的文本显示为图像下的标题。这需要为网站上的100000篇旧文章帖子设置。

1 个回复
SO网友:iantsch

WordPress方法如果您的所有图像都在媒体库中,那么您可以在通过tinyMCE或普通PHP嵌入/包括图像的同时访问其post对象。WordPress使用wp_prepare_attachment_for_js 获取有关刀片模板的图像的所有信息。也许这会帮助你开始。

可能的方法过滤器the_content 打开输出。这个带有DOMDocument/DOMNode的解决方案在服务器上的负担很重,应该缓存或保存,或者根本不做。

add_filter(\'the_content\', \'my_image_filter\');
function my_image_filter($content) {
    $doc = new DOMDocument();
    $doc->loadHTML($content);
    $images = $dom->getElementsByTagName(\'img\');
    foreach ($images as $img) {
        $info = $img->getAttribute(\'alt\');
        $alt = $doc->createElement(\'p\', $info);
        //TODO: Adding $alt Node somewhere or replacing Image Node...
    }
    return $doc->saveHTML();
}
另一种方法是在迁移内容时,过滤alt标记并在图像后附加一些html。如果您的图像不在WordPress中,请进行自定义tinyMCE集成,以如上所述处理图像。

相关推荐

Images with overlay

我有一些图片在一个容器中,我想添加一个覆盖和图标。这不是现成的,但我找到了一些有用的代码:HTML:<div class=\"main\"> <span class=\"featured\"><img src=\"http://joshrodg.com/IMG_001-258x258.jpg\" title=\"\" alt=\"\"></span> </div> CSS:.featured {