我有自己的自定义WordPress主题,我正在构建“最新消息”部分。我的页面标题图片和alt标记的自定义字段用于我网站上的每个页面,我使用以下代码在每个页面上显示这些自定义字段:
<section class="page-heading">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<img src="<?php the_field( 'header_image' ); ?>" alt="<?php the_field( 'main_header_image_alt_tag' ); ?>">
<?php endwhile; endif; ?>
</section>
哪个工作正常。但是在我的“最新新闻”页面上显示所有新闻报道(帖子)中的所有自定义字段,例如,如果我每页显示3个帖子,那么我将显示3个图像和3个alt标记。
在我的设置中,我将“帖子页面”设置为“最新消息”。
有没有办法我只能显示1张图片和1张alt标签而不是全部3张?
感谢。
修改 我添加了一个图片以便更好地解释......跨越屏幕的图像来自新闻报道,而不是“最新新闻”页面的自定义字段。
答案 0 :(得分:0)
我不知道我是否理解你的问题,但你希望你的第一篇文章显示图像,其余的不显示?
我想你必须写下这样的东西:
<section class="page-heading">
<php $show_first_image = true; ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php if($show_first_image): $show_first_image = false; ?>
<img src="<?php the_field( 'header_image' ); ?>" alt="<?php the_field( 'main_header_image_alt_tag' ); ?>">
<?php endif; ?>
<?php endwhile; endif; ?>
答案 1 :(得分:0)
我想我理解你的问题,你的最新新闻也是一个页面(帖子类型),它有标题图片。
您的索引文件/存档是这样的:
<?php
get_header();
if(have_posts()):
while(have_posts()):
// your latest news * 3.
endwhile;endif;
get_footer(); ?>
问题是,在get_header()之前加载了它的项目,将显示你的标题图像。
你做的是这样的:
<?php
global $wp_query;
$original_query = $wp_query;
$wp_query = null;
$page = get_query_var( 'pagename' );
$wp_query = new WP_Query( array('post_type' => 'page', 'pagename' => $page ) );
get_header(); // in the get_header() you will probably have the <section class="page-heading">
$wp_query = null;
$wp_query = $original_query;
if(have_posts()):
while(have_posts()):
// your latest news * 3.
endwhile;endif;
get_footer(); ?>
我希望这是你对问题的回答。
答案 2 :(得分:0)
我通过为我的新闻页面创建一个新模板并在该模板中使用WP_Query来引入最新的新闻故事来解决这个问题。我也没有设置帖子页面&#39;在我的阅读设置中,导致所有问题的原因。
我不确定这是否是最有效的做事方式,但它对我有用。
<!-- WP Query Arguments -->
<?php
$args = array(
'page_id' => '103'
);
$the_query = new WP_Query( $args );
?>
<!-- End WP Query Arguments -->
<!-- WP Query loop -->
<?php if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<h3><?php the_title(); ?></h3>
<?php the_content(); ?>
<?php endwhile; ?>
<?php else: ?>
<h2>No posts to display</h2>
<?php endif; ?>
<!-- End WP Query loop -->
<!-- WP Query Arguments -->
<?php
$args = array(
'post_type' => 'post',
'posts_per_page' => '5'
);
$the_query = new WP_Query( $args );
?>
<!-- End WP Query Arguments -->
<!-- WP Query loop -->
<?php if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<div class="news-story">
<div class="news-heading">
<h5><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h5>
<p class="publish-date"><strong>Posted on:</strong> <?php the_time('j M, Y'); ?></p>
</div>
<?php the_excerpt(); ?>
<p><a href="<?php the_permalink(); ?>" class="site-button-light-blue">Full Story <i class="fa fa-angle-double-right"></i></a></p>
</div>
<?php endwhile; ?>
<?php else: ?>
<h2>No posts to display</h2>
<?php endif; ?>
<!-- End WP Query loop -->