• 欢迎访问窗外天空网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 本站兼容IE9+,谷歌Chrome,火狐Firefox等主流浏览器

wordpress 获取文章内所有图片

Wordpress nixon li 264次浏览 0个评论 扫描二维码

在制作wordpress主题过程中,有遇见想要自动获取文章内所有图片的情况,一开始没有思路,后来,想起大前段的xiu主题貌似就拥有这样的功能,经过维维大神的扣扯后,现在大叔拿来分享哈,绝笔可用的嚎!
wordpress 获取文章内所有图片

将代码插入functions.php

function hui_get_thumbnail( $single=true, $must=true ) {
 global $post;
 $html = '';
 if ( has_post_thumbnail() ) {
 $domsxe = simplexml_load_string(get_the_post_thumbnail());
 $src = $domsxe->attributes()->src;
 $src_array = wp_get_attachment_image_src(hui_get_attachment_id_from_src($src), 'thumbnail');
 $html = sprintf('<li>&lt;img src="%s" /&gt;</li>', $src_array[0]);
 } else {
 $content = $post->post_content;
 preg_match_all('/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>/sim', $content, $strResult, PREG_PATTERN_ORDER);
 $images = $strResult[1];
 $counter = count($strResult[1]);
 $i = 0;
 foreach($images as $src){
 $i++;
 $src2 = wp_get_attachment_image_src(hui_get_attachment_id_from_src($src), 'thumbnail');
 $src2 = $src2[0];
 if( !$src2 && true ){
 $src = $src;
 }else{
 $src = $src2;
 }
 $item = sprintf('<li>&lt;img src="%s" /&gt;</li>', $src);
 if( $single){
 return $item;
 break;
 }
 $html .= $item;
 if(
 ($counter >= 4 && $counter < 8 && $i >= 4) ||
 ($counter >= 8 && $i >= 8) ||
 ($counter > 0 && $counter < 4 && $i >= $counter)
 ){
 break;
 }
 }
 }
 return $html;
}
function hui_get_attachment_id_from_src ($link) {
 global $wpdb;
 $link = preg_replace('/-\d+x\d+(?=\.(jpg|jpeg|png|gif)$)/i', '', $link);
 return $wpdb->get_var("SELECT ID FROM {$wpdb->posts} WHERE guid='$link'");
}

以上代码规则可根据自己实际要求来修改

前端调用

<?php echo hui_get_thumbnail(false,true);?>

版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明wordpress 获取文章内所有图片
喜欢 ( 0)
微信扫码
支付宝扫码
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址