当前位置: 首页 > 知识库问答 >
问题:

Wordpress post循环添加类

宰父志新
2023-03-14

我正在使用Wordpress标签在我的网站上创建特色文章部分(主页上显示了3篇最新的标记为“特色”的文章),代码如下:

                        <?php

                            $args=array(
                              'tag' => 'featured',
                              'showposts'=>3,
                              'caller_get_posts'=>1
                            );
                            $my_query = new WP_Query($args);
                            if( $my_query->have_posts() ) {
                              while ($my_query->have_posts()) : $my_query->the_post(); ?>
                              <div class="featured-article">
                                <!--thumbnail, title and link code here -->
                              </div>
                               <?php
                              endwhile;
                            } //if ($my_query)
                          wp_reset_query();  // Restore global post data stomped by the_post().
                        ?>

每个条目都包裹着“特色文章”,但由于我希望第一个帖子是全宽的,其他2个半宽的,我想知道如何给它们添加合适的类?所以,第一个帖子得到“全宽度”类和另外两个“半宽度”...

如果我没有正确解释(英语不是第一语言)我道歉。

任何帮助都将不胜感激

共有2个答案

太叔永新
2023-03-14

你可以用计数器来解决这个问题。

<?php
       $args=array(
         'tag' => 'featured',
         'showposts'=>3,
         'caller_get_posts'=>1
      );

      $my_query = new WP_Query($args);

      //add classes
      $counter = 0;
      $classes = '';

      if( $my_query->have_posts() ) {
          while ($my_query->have_posts()) : $my_query->the_post(); 
              $classes = $counter == 0 ? ' full-width' : ' half'; 
 ?> 
       <div class="featured-article<?php echo $classes; ?>">
           <!--thumbnail, title and link code here -->
       </div>
 <?php
              $counter++;
           endwhile;
      } //if ($my_query)

      wp_reset_query();  // Restore global post data stomped by the_post().
  ?>

或者您可以为addition类创建自定义文件。

罗诚
2023-03-14

您可以使用$my_查询获取文章的索引-

$class = $my_query->current_post == 0 ? 'full-width' : 'half-width';

您可能还希望确保该类仅应用于第一页的第一项

$class = $my_query->current_post == 0 && !is_paged() ? 'full-width' : 'half-width';

这是你的循环

 <?php

 $args=array(
     'tag' => 'featured',
     'showposts'=>3,
     'caller_get_posts'=>1
 );

 $my_query = new WP_Query($args);


 if( $my_query->have_posts() ) {
     while ($my_query->have_posts()) : $my_query->the_post();

     $class = $my_query->current_post == 0 && !is_paged() ? 'full-width' : 'half-width'; ?>

         <div class="featured-article <?php echo $class; ?>">

         </div>
     <?php
     endwhile;
 } //if ($my_query)

 wp_reset_query();  // Restore global post data stomped by the_post().
 ?>
 类似资料:
  • 我有一个任务来优化for循环,以便编译器编译运行更快的代码。目标是使代码在 5 秒或更短的时间内运行,原始运行时间约为 23 秒。原始代码如下所示: 我的第一个想法是在内部for循环上进行循环展开,使它降到5.7秒,循环看起来像这样: 在每个循环的阵列中将其取出12个点后,性能不再增加,所以我的下一个想法是尝试引入一些并行性,所以我做了这个: 这实际上最终减慢了代码的速度,并且每个附加变量再次减慢

  • 我有一个导航菜单,显示一组来自单击主题的注释。便笺可以是类(如果它是可见的),也可以是类(如果它是隐藏的)。我只想从点击的主题中显示注释。 问题是,其他主题的一些注释也在展示。即使的长度始终为2。 我是JavaScript新手,所以可能我的循环中有错误?提前致谢:) null null

  • 我试图理解数组加法CoderByte问题的解决方案中的逻辑。这是问题提示——“使用JavaScript语言,让函数ArrayAdditionI(arr)获取存储在arr中的数字数组并返回字符串true,如果数组中的任何数字组合可以加到等于数组中的最大数字,否则返回字符串false。例如:如果arr包含[4, 6, 23, 10, 1, 3],则输出应该返回true,因为4 6 10 3 = 23。

  • 我在mysql数据库中有一个数组数据,我想在使用Ajax得到结果后,用for循环逐个显示出来。过程是这样的。 这是将呈现每个项的段落 null 当我尝试使用for循环时,它会说语法错误,意外的for循环被取走,我该如何解决这个问题,例如,这里我使用sample for循环来使事情尽可能简单。

  • 我有一个游戏,每隔X秒它就会把内存中改变的值写回我的数据库。当编辑这些值保存的数据时,它们存储在容器(HashMaps和ArrayList)中。 为了简单起见,假设我只有一个容器可以写入数据库: 我的DB写入循环: 我的更新方法: 我是否需要在为dbEntitiesDeletesBacklog HashMap和本摘录中未包含的其他容器“保存到DB”时创建某种锁定机制?我想我需要这样做,因为它会创建

  • 问题内容: 我想在循环内添加延迟/睡眠: 我这样尝试过: 只有第一种情况是正确的:显示后,它将等待3秒钟,然后显示,但随后将不断重复。 我想要的是在显示3秒之后显示出来,然后它需要第二次等待3秒,依此类推。 问题答案: 该函数是非阻塞的,将立即返回。因此,您的循环将非常快速地迭代,并且将快速连续地发起3秒超时触发。这就是为什么您的第一个警报会在3秒钟后弹出,而其余所有警报都将连续不断地出现。 您可