我目前正在创建我的第一个自定义wp主题,其中帖子包含标题、内容、图库,以及标题和内容之间的一个div,我将在下面为图库设置第一个图像作为背景图像。我曾尝试使用大量不同的代码从图库中获取第一幅图像。大多数版本的catch\\u that\\u image只能在普通图像上正常工作,但不能在库中正常工作。我已尝试使用THIS POST. 它抓到了第一张好的图片,但摧毁了网站库(不知道它是怎么发生的,这是新的东西)。
有人知道找到画廊第一张图片的好方法吗?另外,我非常感谢您能给我一个简单的解释。我真的是一个“刚到”的人,尽量不要发疯。
使用最新的Wordpress版本。
最合适的回答,由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];
}
}
}
}
}
我认为代码很容易理解,但是。。。
- grab the regex that Core uses to extract shortcodes如果有短代码,parse the attributes抓取第一个ID,然后get the image (或尝试
get_attachment_image_url()
如果更方便的话)