在首页显示不同模板的文章|已解决|

时间:2021-07-13 作者:Outkax

我正在为我的网站创建一个主题。我想在主页上显示最后5篇文章,但第一篇文章的显示方式不同。因此,我创建了这段代码,我试图对其进行调整,但无法用第一个模板显示第一篇文章,用第二个模板显示其他4篇文章。我不知道是否有可能用我想要的方式来做,但这种方式似乎是最简单的

我的代码:

<?php
  $query = [
    \'post_type\' => \'post\',
    \'posts_per_page\' => 5
  ];
  $query = new WP_Query($query);
  while ($query->have_posts()) : {
    $query->the_post();
    if($query === 1) :
      get_template_part(\'loops/acc-cards\');
    else() :
      get_template_part(\'loops/cards\');
  }
  wp_reset_postdata();
  ?>

3 个回复
最合适的回答,由SO网友:Outkax 整理而成

解决方案找到了,它错过了一段时间;

 <?php
  $query = array(
    \'post_type\' => \'post\',
    \'posts_per_page\' => 5
  );
  $query = new WP_Query($query);
  while ($query->have_posts()) : 
    $query->the_post();
    if($query->current_post === 0) :
      get_template_part(\'mining-inc/loops/acc-cards\');
    else :
      get_template_part(\'loops/cards\');
    endif;
  endwhile;
  wp_reset_postdata();
  ?>

SO网友:Pixelsmith

我还没有对此进行测试,但看起来您只需要设置一个迭代变量(通常缩写$i), 像这样:

<?php
$i = 0; // This sets your variable
$query = [
\'post_type\' => \'post\',
\'posts_per_page\' => 5
];

$query = new WP_Query($query);
  while ($query->have_posts()) : {
    $query->the_post();
    if($i == 0) :
      get_template_part(\'loops/acc-cards\');
    else() :
      get_template_part(\'loops/cards\');
  }
$i++ // This iterates the iteration variable $i
wp_reset_postdata();
?>

SO网友:Sahriar Saikat

在WordPress中执行此操作的适当日期是使用current_post 值,而不是设置自己的变量,如$i. current_post 是以0开头的循环中当前帖子的索引。

<?php
  $query = array(
    \'post_type\' => \'post\',
    \'posts_per_page\' => 5
  );
  $query = new WP_Query($query);
  while ($query->have_posts()) :
    $query->the_post();
    if($query->current_post === 0) :
      get_template_part(\'loops/acc-cards\');
    else:
      get_template_part(\'loops/cards\');
    endif;
  endwhile;
  wp_reset_postdata();
  ?>

相关推荐

警告:在PHP函数中给出了in_array()NULL

我正在Wordpress中为特定页面模板构建一个metabox库。我在仪表板上有以下警告通知:警告:in\\u array()要求参数2为array,在警告针对代码行:if ( in_array( $post_type, $post_types ) ) {public function add_meta_box( $post_type ) { $post_types = apply_filters( \'sortable_wordpress_gallery_post_types\