巧用function获取wordpress特殊图片的URL地址

 2016-09-07 13:27

做过wordpress模版的朋友都知道,在WP里面有一些函数非常好用,它可以很简单的调出需要的相关内容,有的甚至连A标签、URL地址都一起捆绑调出。我在做wordpress模版时遇到一处需要直接调用文章“特殊图片”的URL,使用get_post_thumbnail()无法实线。经过研究测试,结合大家所讲,终于完成了一个比较满意的function。

这个方法(funciton)可以直接输出文章特殊图片的URL地址。如果没有特殊图片,则调用文章第一个图片,如果还没有图片,则调用自定义。

首先是需要你在文章编辑页面插入特色图片模块:

add_theme_support('post-thumbnails');

我们需要把特殊图片里面的SRC链接地址提取出来,这样,我们就有了对于的URL地址,那么就有了下面这段代码:

$html = get_the_post_thumbnail();
preg_match_all("/<img.*src\s*=\s*[\"|\']?\s*([^>\"\'\s]*)/i", $html, $matches);
$imgsrc=$matches[1][0];

当然,我们这样做逻辑还不够完整。应该是在有特殊图片的时候调用图片的URL,没有特殊图片的时候调用文章的第一个插入的图片,还没有的话就只能留空或者自定义个URL地址了。整合下,我们就完成下面这个functions:

/**
* 函数名称:post_thumbnail_url
* 函数作用:输出特殊图片中的图片链接地址
*/
function post_thumbnail_url(){
    global $post, $posts;
    if (has_post_thumbnail()) {
        $html = get_the_post_thumbnail();
        preg_match_all("/<img.*src\s*=\s*[\"|\']?\s*([^>\"\'\s]*)/i", $html, $matches);
        $imgsrc=$matches[1][0];
    }else{
        $content = $post->post_content;
        preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i',$post->post_content,$matches);
        $imgsrc=$matches[1][0];
        if($imgsrc==""){ 
        // 如果无图片则显示none,当然也可以自定义个URL地址
            $imgsrc="none";
        }
    }
    echo "$imgsrc";
}

这个函数可以直接输出URL地址,当然,如果您也可以把里面的none参数修改成您所需要的URL地址。它是在所有地址都无法实现后所提取的默认图片显示地址。当然,也可以增加一个随机函数,调用不同的图片,这个功能就留给大家自我思考吧。

调用还是很简单的,直接在相应页面输出就可以了:

<?php post_thumbnail_url(); ?>


作者头像

作者:紫铜炉

自由博主,网页设计师。我关注科技产品和个人博客发展,注重用户体验和界面优化。

 发表评论: