我没想到这很难,但到目前为止还没有实现它。
我只想在使用媒体库将图像插入帖子时,为包含img标记的链接标记添加一个类名。
我想转此
<a href="http://..."><img src="http://..." alt="..." width="780" height="490" class="alignnone size-full wp-image-12" /></a>
进入这个
<a href="http://..." class="fancylink fancybox.ajax"><img src="http://..." alt="..." width="780" height="490" class="alignnone size-full wp-image-12" /></a>
我可以使用jQuery做得很简单,但我更喜欢使用wordpress过滤器或自定义函数。因此帖子中的输出包括类名。
答案 0 :(得分:0)
感谢msbodetti,解决方案如下。
function add_colorbox_class_to_image_links($html, $attachment_id, $attachment) {
$linkptrn = "/<a[^>]*>/";
$found = preg_match($linkptrn, $html, $a_elem);
// If no link, do nothing
if($found <= 0) return $html;
$a_elem = $a_elem[0];
// Check to see if the link is to an uploaded image
$is_attachment_link = strstr($a_elem, "wp-content/uploads/");
// If link is to external resource, do nothing
if($is_attachment_link === FALSE) return $html;
if(strstr($a_elem, "class=\"") !== FALSE){
// If link already has class defined inject it to attribute
$a_elem_new = str_replace("class=\"", "class=\"fancylink ", $a_elem);
$html = str_replace($a_elem, $a_elem_new, $html);
}else{ // If no class defined, just add class attribute
$html = str_replace("<a ", "<a class=\"fancylink \" data-fancybox-group=\"gallery\" ", $html);
}
return $html;
}
add_filter('image_send_to_editor', 'add_colorbox_class_to_image_links', 10, 3);