我正在尝试从自定义帖子类型和ACF查询,无法在首页上显示图像。以下是我的wp_query
<?php
$args = array(
'post_type' => 'property',
'post_status' => 'publish',
'posts_per_page' => '4'
);
$property_loop = new WP_Query( $args );
if ( $property_loop->have_posts() ) :
while ( $property_loop->have_posts() ) : $property_loop->the_post();
// Set variables
$title = get_the_title();
$description = get_the_content();
$property_image2 = get_field('property_image2');
// Output
?>
<div class="property">
<img src="<?php echo $property_image1; ?>" alt="<?php echo $title; ?>">
<h2><?php echo $title; ?></h2>
<img src="<?php echo $property_image1; ?>" alt="property-detail" class="property-detail align-right">
<?php echo $description; ?>
<p><a href="<?php echo $download; ?>" target="_blank" name="Spec Sheet">Download Spec Sheet</a></p>
</div>
<?php
endwhile;
wp_reset_postdata();
endif;
?>
任何人都可以帮助我吗?
答案 0 :(得分:1)
please working code please try custome field image display for fornt side
<?php
$args = array(
'post_type' => 'property',
'post_status' => 'publish',
'posts_per_page' => '4'
);?>
<?php $recent = new WP_Query($args); while($recent->have_posts()) : $recent->the_post();?>
<div class="property">
<?php $property_image2 = get_field('property_image2');?>
<img src="<?php echo $property_image2['url'];?>" alt="<?php echo $property_image2['alt'];?>">
<h2><?php the_title(); ?></h2>
<img src="<?php echo $property_image2['url'];?>" alt="<?php echo $property_image2['alt'];?>" class="property-detail align-right">
<?php the_content(); ?>
<p><a href="<?php the_field('your_download_field_name'); ?>" target="_blank" name="Spec Sheet">Download Spec Sheet</a></p>
</div>
<?php wp_reset_postdata(); endwhile;?>
答案 1 :(得分:0)
在设置$ property_image2时,您正在回显$ property_image1。
$ download的来源是什么?
检查wp_query vs get_posts:https://wordpress.stackexchange.com/a/191934/134453
的答案在你的情况下,如果你没有分页(我认为你没有,因为你将posts_per_page设置为4),最好使用get_posts()
。它也更快。
测试一下,我认为这会很有效:
<?php
// Get posts args
$args = array(
'post_type' => 'property',
'post_status' => 'publish',
'posts_per_page' => '4'
);
// Get properties
$properties = get_posts($args);
if (!empty($properties)) :
foreach($properties as $post) : setup_postdata($post) :
$property_image2 = get_field('property_image2');
?>
<div class="property">
<img src="<?php echo $property_image2; ?>" alt="<?php the_title(); ?>">
<h2><?php the_title(); ?></h2>
<img src="<?php echo $property_image2; ?>" alt="property-detail" class="property-detail align-right">
<?php the_content(); ?>
<p><a href="<?php echo $download; ?>" target="_blank" name="Spec Sheet">Download Spec Sheet</a></p>
</div>
<?php
endwhile;
wp_reset_postdata();
endif;
?>
答案 2 :(得分:0)
看起来您正在尝试回显不存在的$property_image1
。您需要定义它或使用确实存在的$property_image2
。
答案 3 :(得分:0)
我在这里看到了答案,其中一些是正确的但未经过优化。
更改1:使用WP_Query而不是必需的foreach和if语句。
更改2:图像拉入不正确的alt标签,将ACF字段页面中的图像设置为图像对象,并允许它将动态alt拉到该图像。
更改3:无需使用if语句检查是否有帖子,因为查询仅在有帖子时运行。
更改4:无需定义the_content和the_title,而是在循环内部调用它们。
更改5:我已添加下载链接的调用,这需要更新到您的字段名称以供下载。
<?php
$args = array(
'post_type' => 'property',
'post_status' => 'publish',
'posts_per_page' => '4'
);?>
<?php $recent = new WP_Query($args); while($recent->have_posts()) : $recent->the_post();?>
<div class="property">
<?php $property_image2 = get_field('property_image2');?>
<img src="<?php echo $property_image2['url'];?>" alt="<?php echo $property_image2['alt'];?>">
<h2><?php the_title(); ?></h2>
<img src="<?php echo $property_image2['url'];?>" alt="<?php echo $property_image2['alt'];?>" class="property-detail align-right">
<?php the_content(); ?>
<p><a href="<?php the_field('your_download_field_name'); ?>" target="_blank" name="Spec Sheet">Download Spec Sheet</a></p>
</div>
<?php wp_reset_postdata(); endwhile;?>
虽然以下1个答案表明,在不使用分页时使用WP_Query是不合适的,但这种方法是正确的。但是,每页限制为4个事实表明存在分页,并且如果您想使用分页,还可以使用查询允许将来进行校对。