是否对图库使用Catch_That_Image()?

时间:2015-10-29 作者:aln447

我目前正在创建我的第一个自定义wp主题,其中帖子包含标题、内容、图库,以及标题和内容之间的一个div,我将在下面为图库设置第一个图像作为背景图像。我曾尝试使用大量不同的代码从图库中获取第一幅图像。大多数版本的catch\\u that\\u image只能在普通图像上正常工作,但不能在库中正常工作。我已尝试使用THIS POST. 它抓到了第一张好的图片,但摧毁了网站库(不知道它是怎么发生的,这是新的东西)。

有人知道找到画廊第一张图片的好方法吗?另外,我非常感谢您能给我一个简单的解释。我真的是一个“刚到”的人,尽量不要发疯。

使用最新的Wordpress版本。

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

gallery是一个短代码,因此您需要解析该短代码以获取其中引用的图像:

function pull_image_from_gallery(){
  global $post;
  $pattern = get_shortcode_regex();
  preg_match_all( \'/\'. $pattern .\'/s\', $post->post_content, $matches );
  foreach ($matches[2] as $k=>$v) {
    if (\'gallery\' == $v) {
      $atts = shortcode_parse_atts($matches[3][$k]);
      if (!empty($atts[\'ids\'])) {
        $ids = explode(\',\',$atts[\'ids\']);
        $first = $ids[0];
        $image = wp_get_attachment_image_src( $atts[\'ids\'] );
        if (!empty($image)) {
          // do what you want with image
          return $image[0];
        }
      }
    }
  }
}
我认为代码很容易理解,但是。。。

  1. grab the regex that Core uses to extract shortcodesparse the attributesget the image (或尝试get_attachment_image_url() 如果更方便的话)

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请