我试图仅从Wordpress中的页面中抓取图像。
我读到有一个名为get_post_gallery()
的函数,但它似乎无法获取我的图像。这就是我所做的:
if ( get_post_gallery() ) :
$images = get_post_gallery(get_the_ID(), false);
foreach($images as $image)
{
echo $image['src'];
}
endif;
这行代码放在the loop
内,据我所知:
if ( have_posts() ) {
\\Bit of code in here
}
但是,它返回的数组似乎是空的(即使后页编辑器中有图像)。 你们建议用这种方式或其他方式只检索帖子/页面中的图片吗?
答案 0 :(得分:1)
我在另一个SO question找到了你的答案。
这是:
function wpse_get_images() {
global $post;
$id = intval( $post->ID );
$size = 'medium';
$attachments = get_children( array(
'post_parent' => $id,
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image',
'order' => 'ASC',
'orderby' => 'menu_order'
) );
if ( empty( $attachments ) )
return '';
$output = "\n";
/**
* Loop through each attachment
*/
foreach ( $attachments as $id => $attachment ) :
$title = esc_html( $attachment->post_title, 1 );
$img = wp_get_attachment_image_src( $id, $size );
$output .= '<a class="selector thumb" href="' . esc_url( wp_get_attachment_url( $id ) ) . '" title="' . esc_attr( $title ) . '">';
$output .= '<img class="aligncenter" src="' . esc_url( $img[0] ) . '" alt="' . esc_attr( $title ) . '" title="' . esc_attr( $title ) . '" />';
$output .= '</a>';
endforeach;
return $output;
}