已解决

最近在做WordPress主题开发的时候,遇到一个需求就是在文章列表页显示一篇文章的多图列表样式(如下图截自本站点的问答列表页的这个样式),之前曾经使用自定义字段的方式实现过这个功能,但是需要手动去上传要显示的多图,后期内容管理的时候相对比较麻烦,所以想着如果能让程序自动获取到当前文章中的所有图片路径,然后在文章列表页按照需要设置最多显示几张就可以了,这样在内容管理的时候会方便很多,不知道大家都有什么好办法给指点一下没?

2 个回答

头像
grantchao
新手小白
新手小白
时间: 2021年11月29日

再次感谢,回复很快,方法很好用,哈哈

最佳
WordPress日记
超哥
行业大佬
行业大佬
时间: 2021年11月29日

不多说了,直接上代码,把下面代码放到你主题的functions.php中

/**
*获取当前文章中所有图片 
*WordPress中文社区 https://www.wpshequ.cn
*/
function mx_get_post_images(){
    global $post;
    ob_start();
    ob_end_clean();
    $output = preg_match_all('/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>/sim', $post->post_content, $matches, PREG_PATTERN_ORDER);
    return $matches[1];
}

然后再你需要使用图片url的地方使用mx_get_post_images()这个函数获取出来,然后循环输出成你需要的样式就行了。希望对你有帮助!