0

我在自己的 WordPress 博客上安装了 Graph Paper Press 的名为“Mansion”(免费版)的主题。一切运行顺利,但我想删除、禁用或以其他方式阻止 ALT 和 TITLE 工具提示出现在用户端。

如果您将该字段留空,WordPress 会在上传图像时自动从文件名生成 TITLE 属性。此外,TITLE 和 ALT 都是由这个主题上名为“获取图像”(Justin Tadlock)的脚本自动生成的,不幸的是,我对禁用它的这方面的代码感到不舒服(我需要它主题运行)。

我尝试了各种 jQuery 脚本来隐藏或删除属性,但完全无济于事,我开始认为这可能是与主题本身有关的怪癖。有没有人有任何想法?我的博客位于http://www.ikukawachi.com/cvj341/wordpress/

4

2 回答 2

3

无需 javascript:

add_filter( 'wp_get_attachment_image_attributes', 'remove_image_text'); 
function remove_image_text( $attr ) {
    unset($attr['alt']);
    unset($attr['title']);
    return $attr;
}
于 2012-03-10T14:02:51.943 回答
2

只要您有可用的 jQuery,您就可以尝试:

$('img[title], img[alt]').removeAttr('title').removeAttr('alt');

这适用于 Ubuntu 10.10 上的 Chromium 10 控制台。


针对@Iku的评论进行了编辑:

您好,感谢您的帮助。不幸的是,我确定我已将内置 jQuery 库排入队列并添加了您建议的代码,但它似乎仍然无法正常工作。(它在源代码中,如果您想查看该站点。)这似乎是一个愚蠢的问题,但是代码是否需要放置在页面上的特定位置才能工作?如果有,在哪里?

上面的 jQuery 应该位于以下任一内部:

$(document).ready(
    function(){
        $('img[title], img[alt]').removeAttr('title').removeAttr('alt');
    });

或者:

$(window).load(
    function(){
        $('img[title], img[alt]').removeAttr('title').removeAttr('alt');
    });

两者之间的区别在于$(document).ready()DOM 加载并准备就绪时发生;while$(window).load()在页面上链接到的资源(例如img元素)已加载后发生。

要测试您的浏览器,请打开 JavaScript 控制台( Chrome/Chromium/Safari 中的ctrl++ shifti,然后将以下内容粘贴到控制台中:

var s = document.createElement('script'); s.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js'; document.getElementsByTagName('head')[0].appendChild(s);

点击enter,然后粘贴以下内容:

$('img[title], img[alt]').removeAttr('title').removeAttr('alt');

在此之后,您应该能够悬停任何img元素并看到 no title,并且在丢失图像的地方alt不应该显示。

参考:

于 2011-04-15T01:24:08.717 回答