【问题标题】:Wordpress to echo post 4 in a rowWordpress 连续回显第 4 个帖子
【发布时间】:2014-03-13 15:36:00
【问题描述】:

亲爱的 stackoverflow,有人可以帮助我解决这个问题,因为我花了超过 3 个小时试图修复它。下面的代码连续回显 2 个帖子,但我希望它连续 4 个。 感谢您的帮助:

第一个是我的content.php

<article  id="post-<?php the_ID(); ?>" <?php post_class('group'); ?>>   
    <div class="post-inner post-hover">

        <div class="post-thumbnail_id">
            <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
                <?php if ( has_post_thumbnail() ): ?>
                     <?php the_post_thumbnail('thumb-medium'); ?>
                <?php elseif ( ot_get_option('placeholder') != 'off' ): ?>
                    <img class="placeholder" src="<?php echo get_template_directory_uri(); ?>/img/thumb-medium.png" alt="<?php the_title(); ?>" />
                <?php endif; ?>

        </div>

    </div>  
</article>

index.php

<?php query_posts('category_name=content&showposts=2'); ?>
<?php if ( have_posts() ) : ?>
        <div class="post-list group">
                      <div style="background:green; width:100%;">
            <?php $i = 1; echo '<div class="post-row2">'; while ( have_posts() ): the_post(); ?>
          <?php get_template_part('content'); ?>
            <?php if($i % 2 == 0) {echo '</div><div class="post-row2"></div><div class="post-row2">'; 

            } 
          $i++; endwhile; echo '</div>'; ?>

    </div></div>
    <?php endif; ?>

【问题讨论】:

  • 您是否尝试过将每次出现的 2 更改为 4?小线索:category_name=content&showposts=4
  • 是的,但没有成功:
    ';而(有_posts()):the_post(); ?>
    '; } $i++;结束;回声'
    '; ?>
  • 你有 4 个帖子吗?
  • 是的,我有 4 个帖子
  • 它们属于正确的类别吗?例如'内容'

标签: php wordpress post categories


【解决方案1】:

将 index.php 的第一行更改为:

<?php query_posts('category_name=content&showposts=4'); ?>

【讨论】:

  • 我做了,但仍然有 2 个连续
  • 你能告诉我你为什么使用这部分 $i % 2 == 0 吗?如果您输入 4 个帖子,您只会在此条件下显示两个帖子
  • 取出来了,还是不行。。这样:
    '; } $i++;结束;回声'
    '; ?>
  • 啊,知道了@Rhys Stewart 是正确的,将 $i % 2 更改为 $i % 4 并且如果你有足够的帖子,它会将行尾放在第四个之后,所以试试 if($i % 4 == 0) {
  • 此外,这段代码似乎有点缺陷,如果帖子的数量不能被 4 整除,如果我是正确的,你会得到一个未闭合的
【解决方案2】:

content.php 没有显示任何关于它可以加载的帖子数量的参考,所以我无法尝试解决这个问题。不过,我可以尝试为 index.php 做一些事情。

试试这个:

<?php query_posts('category_name=brand-identity&showposts=4'); ?>
<?php if ( have_posts() ) : ?>
    <div class="post-list group">
                  <div style="background:green; width:100%;">
        <?php $i = 1; echo '<div class="post-row4">'; while ( have_posts() ): the_post(); ?>
      <?php get_template_part('identity_content'); ?>
        <?php if($i % 4 == 0) {echo '</div><div class="post-row4"></div><div class="post-row4">'; 

        } 
      $i++; endwhile; echo '</div>'; ?>

</div></div>
<?php endif; ?>

您不仅需要制作showposts=4,还需要确保 html 也已完成以允许 4 列。由于您已经拥有post-row2,我猜post-row4 可用于4 列布局。

如果没有设置 post-row4,我们需要一点 CSS。但请先尝试上面的代码。

编辑

将此添加到您的CSS

.post-row4 {
    width: 23.5%;
    float:left;
    margin-right: 2%;
}
.post-row4:nth-child(4n+4) {
    margin-right: 0;
}

应该允许 4 个元素在一行中并适合空间。

【讨论】:

  • 它实际上确实显示了它可以加载的帖子数量&lt;?php query_posts('category_name=content&amp;showposts=2'); ?&gt;
  • 请没有 post-row4,我只是将 post-row 设置为自定义此代码:这是 CSS: .post-list .post-row2 { margin-left: -30px;左边距:30px;向左飘浮;宽度:100%;边框底部:1px 实心#eee;边距底部:30px;位置:相对;填充顶部:30px; } .post-list .post-row2:last-child { 边框:无;边距底部:0; } .identity-list .post-row2 { margin-left: -30px;左边距:30px;向左飘浮;宽度:23%;边框底部:1px 实心#eee;边距底部:30px;位置:相对;填充顶部:30px; }
  • 当然...我不确定我是否可以在这里发布
  • 我需要 10 个声望才能发布图片
  • 感谢 Rhys,我已经发布了图片
【解决方案3】:

我已经通过 Rhys 的 CSS 提案解决了这个问题。一两件事情仍然需要解决,但我将所有 4 件放在一排。感谢大家的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多