我在wordpress网站上使用高级自定义字段插件。 我正在页面上显示来自子页面的转发器字段的第一个图像(“照片”)('photos_presse')。 这是我正在使用的PHP代码。
<?php
$args = array(
'post_type' => 'page',
'post_parent' => $post->ID,
'order' => 'ASC',
'orderby' => 'menu_order',
'post_status' => 'publish',
'number' => 'no limit',
);
$parent = new WP_Query( $args );
if ( $parent->have_posts() ) : ?>
<?php while ( $parent->have_posts() ) : $parent->the_post(); ?>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<div id="parent-<?php the_ID(); ?>" class="parent-page">
<div class="cartouche_crop">
<?php
$first_img = true;
while($first_img && has_sub_field('photos_presse')): ?>
<img src="<?php the_sub_field('photo'); ?>" class="artists_menu">
<?php $first_img = false; ?>
<?php endwhile; ?>
</div>
<h1><?php the_title(); ?></h1>
</div>
</a>
<?php endwhile; ?>
<?php endif; wp_reset_query(); ?>
这是获取第一张图片的代码部分:
<?php
$first_img = true;
while($first_img && has_sub_field('photos_presse')): ?>
<img src="<?php the_sub_field('photo'); ?>" class="artists_menu">
<?php $first_img = false; ?>
<?php endwhile; ?>
在转发器字段中加载图像时,会创建缩略图图像,这可以在我的wordpress管理员的“媒体设置”菜单中设置。 (小,中,大)。
它为每个图像创建4个文件,一个小,一个中,一个大和原始的siez。
我想要做的不是获取每个转发器字段的第一个原始图像,而是想获得转发器字段的第一个中等大小的缩略图。
我找不到怎么做......
任何人都可以帮我这个吗?
感谢您的帮助
答案 0 :(得分:8)
您需要设置acf字段以返回图像对象(您可以在“自定义字段”面板中执行此操作。)
然后该字段将返回一个数组,您将能够获得所需的大小:
$image = get_sub_field('photo');
$image_url = $image['sizes']['medium'];
或者,对于缩略图,您将拥有:
$image = get_sub_field('photo');
$image_url = $image['sizes']['thumbnail'];
基本上,你将拥有wordpress在较大图像数组的大小数组中创建的所有大小。
OP要求的编辑以集成代码
<?php
$first_img = true;
while($first_img && has_sub_field('photos_presse')):
$image = get_sub_field('photo');
$image_url = $image['sizes']['medium'];
?>
<img src="<?php echo $image_url; ?>" class="artists_menu">
<?php $first_img = false; ?>
<?php endwhile; ?>
答案 1 :(得分:0)
首先将“返回值”更改为ACF管理员中的图像对象[ACF管理员示例,您需要先更新选项http://i.imgur.com/Uh1soEx.png]
更新返回值后,您需要更新代码,如下所示
<?php
$first_img = true;
while($first_img && has_sub_field('photos_presse')):
$image = get_sub_field('photo');
$image_thumb = $image['sizes']['thumbnail'] // you can add any image size available in the wordpress admin, if you want to define new image size refer this documentation http://codex.wordpress.org/Function_Reference/add_image_size
echo '<img src="'.$image_thumb.'" class="artists_menu">';
$first_img = false;
endwhile;
?>
答案 2 :(得分:0)
简单易行。首先,将图像返回值设置为&#34;图像对象&#34;,然后使用此代码
<?php $image = get_sub_field('NAMEOFYOURSUBIMAGEFIELD'); ?>
<?php if( $image ): ?>
<img src="<?php echo $image['sizes']['YOURCUSTOMSIZE']; ?>" width="<?php echo $image['sizes']['YOURCUSTOMSIZE-width']; ?>" height="<?php echo $image['sizes']['YOURCUSTOMSIZE-height']; ?>" alt="<?php echo $image['alt']; ?>" />
<?php endif; ?>