修正版:自动给WordPress图片加上文字描述

如风2016-09-29浏览 487评论 4
image 京东购物

有人可能会说这个问题早已被其他人解决了,但你是否遇到这样一个问题。就是按这个方法,在正文的图片不能按你设置对齐方式对齐了。原class属性没了,这直接导致图片无法像在编辑器中设置的方式对齐了,想要排版的话就不可能实现了。这是效果图:

修正版:自动给WordPress图片加上文字描述

给WordPress自动加alt属性及title,原class没有了,只能自定义

class="all_img"是我加入进去的,上面张图片我原设置的是左对齐结果失效。wordpress图片加title和alt标题的方法,这个同时也被众人使用。此代码放在主题的function.php文件内:

//图片自动加上文字描述以及TAG链接
function auto_post_link($content) {
global $post;
$content = preg_replace('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', "<img title=\"".$post->post_title."\" src=\"$2\" title=\"".$post->post_title."\" class=\"all_img\" alt=\"".$post->post_title."\" />", $content);
$posttags = get_the_tags();//自动标签开始
if ($posttags) {
foreach($posttags as $tag) {
$link = get_tag_link($tag->term_id);
$keyword = $tag->name;
$content = preg_replace('\'(?!((<.*?)|(<a.*?)))('. $keyword . ')(?!(([^<>]*?)>)|([^>]*?</a>))\'s','<a href="'.$link.'" title="查看更多关于 '.$keyword.' 文章">'.$keyword.'</a>',$content,1);
//最多替换2个重复的词,避免过度SEO 。红色(1)标明替换多少个,可自行更改
}
}
return $content;
}
add_filter ('the_content', 'auto_post_link',0);

这个方法显然不是我想要的,只是以前没找到将就下而已,利于seo。我希望找到原滋原滋的,使图片对齐位置按原设置的不变。功夫不负有心人,在将近4个小时的时间的寻找中我在这个一个叫“爱我主题”的网站找到了这个方法,只是他的原代码有点问题。他提供的原代码如下:

//给文章图片自动添加alt和title信息
add_filter('the_content', 'imagesalt');
function imagesalt($content) {
global $post;
$pattern ="/<a(.*?)href=('|\")(.*?).(bmp|gif|jpeg|jpg|png)('|\")(.*?)>/i";
$replacement = '<a$1href=$2$3.$4$5 alt="'.$post->post_title.'" title="'.$post->post_title.'"$6>';
$content = preg_replace($pattern, $replacement, $content);
return $content;
}

不知道大家发现错误没有,它表示的是给有超链接的图片加title,而且只加在<a标签内。例:<a href="标题" alt="标题"><img src=""></a>。测试证明它根本没有给图片加alt和title信息。无语,我发现这家伙自己都没测试过。解决方法:把a和href 替换为img和src就可以了。最后效果如图:(解决了)

修正版:自动给WordPress图片加上文字描述

给WordPress自动加alt属性及title,保持了原class对齐方式,正常显示

这个方法我找了好久才找到,分享出来与大家享用。以下代码加入主题function.php文件内。

//图片自动加上文字描述以及TAG链接,并保持图片原有对齐方式
//http://yijiexiaomin.com/201609296623.html
function img_title($content) {
global $post;
$pattern ="/<img(.*?)src=('|\")(.*?).(bmp|gif|jpeg|jpg|png)('|\")(.*?)>/i";
$replacement = '<img$1src=$2$3.$4$5 alt="'.$post->post_title.'" title="'.$post->post_title.'"$6>';
$content = preg_replace($pattern, $replacement, $content);
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
$link = get_tag_link($tag->term_id);
$keyword = $tag->name;
$content = preg_replace('\'(?!((<.*?)|(<a.*?)))('. $keyword . ')(?!(([^<>]*?)>)|([^>]*?</a>))\'s','<a href="'.$link.'" title="查看更多关于 '.$keyword.' 文章">'.$keyword.'</a>',$content,1);//最多替换2个重复的词,避免过度SEO
}
}
return $content;
}
add_filter ('the_content', 'img_title',0);

文/如风
方法:参照网友提供,略修正。

XM AD

如风,发表在建站杂记打印此文

本站为姜哥创建的一介小民,内容大多为原创。创作不易,转载请注明来源,谢谢!

发表评论


77 + 9 = ?

  1. boke112导航
    boke112导航 【队长】 @回复

    我图片就不太喜欢添加链接,不过各有所好,偶尔折腾折腾还是挺好的

  2. 淘宝内部优惠券领取网→
    淘宝内部优惠券领取网→ 【农民】 @回复

    [呲牙] [呲牙] [呲牙]

  3. 管家婆
    管家婆 【农民】 @回复

    喜欢代码

    • 如风
      如风【站长】 @回复

      @管家婆 拿去