使用过滤器(或 jquery)删除 Wordpress 图像周围的锚元素
Posted
技术标签:
【中文标题】使用过滤器(或 jquery)删除 Wordpress 图像周围的锚元素【英文标题】:remove anchor element around Wordpress images with filter (or jquery) 【发布时间】:2011-04-19 06:58:36 【问题描述】:我有一个这样的锚元素:
<a href="/link-to-image/" rel="attachment wp-att-7076"><img src="/uploads/img.jpg" title="" class="alignnone size-full wp-image-7076" /></a>
(这是 Wordpress 在帖子中嵌入上传图片的标准方式。)
我想移除图像元素周围的锚点,但保留图像。我只是希望图像显示而不可点击。
这可以通过 Wordpress 中的帖子内容过滤器或在页面加载 javascript 后完成。最好在 Wordpress 中进行过滤。我不知道如何做这两个选项中的任何一个。
【问题讨论】:
【参考方案1】:找到有用的代码here:
试过了,但导致代码无效。
../your_theme/functions.php 中的代码如下所示:
function remove_anchor($content)
// the code for removing the anchor here
$content =
preg_replace(
array('<a(.*?)(wp-att|wp-content\/uploads)[^>]*><img', '</a>'),
array('<img',''),
$content
);
return $content;
// then use WP's filter/hook system like this:
add_filter('the_content', 'remove_anchor');
【讨论】:
【参考方案2】:进入你的 WP 主题文件夹,编辑“functions.php”。添加如下代码:
function remove_anchor($data)
// the code for removing the anchor here
// (not sure if you need help there, too).
// you will work on the $data string using DOM or regex
// and then return it at the end
return $data;
// then use WP's filter/hook system like this:
add_filter('the_content', 'remove_anchor');
add_filter
表示每次显示帖子时,都会调用remove_anchor
函数。
jQuery 可能更简单,你只需要识别图像而不是让它们可点击(这是未经测试的)
$(document).ready(function()
$('#post a.some-class-name').click(function()
return false;
);
【讨论】:
你有这个的工作版本吗?很想看到完整的代码。我刚刚将 Blogger 导入 WordPress,并且能够使用插件将外部图像转换为本地副本,但它们仍然包裹在指向 Blogger 的锚点中。还有,这个函数是不是真的更新了数据库,所以运行一次就可以删除了?谢谢!以上是关于使用过滤器(或 jquery)删除 Wordpress 图像周围的锚元素的主要内容,如果未能解决你的问题,请参考以下文章