WordPress获取网站文章中所有图片代码方法

如果我们需要调用WordPress网站文章中的图片,我们可以通过直接获取媒体图片的方式,当然也是有插件可以调用的。在这篇文章中,老蒋需要分享的是无插件可以实现调用WP程序中所有文章的图片。这个其实对于有些图片类型的网站是有用的,我们需要展示所有的图片。

第一、脚本部分

    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>
<img src="%s" />
  </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>
    <img src="%s" />
</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'");
              } 

将代码加入到当前主题的Functions.php文件中。

第二、如何调用

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

在我们需要调用的主题单页面或者是某个页面直接加入代码就可以调出图片。


版权属于:ssr 所有,转载请注明文章来源。

本文链接: https://www.taozi1.com/15411.html

赞 (0)
您的大名:
万水千山总是情,给个打赏行不行。 打赏

评论区

发表评论

5+47=?

暂无评论,要不来一发?

回到顶部