Alternating post layout

时间:2012-11-12 作者:Mark

我正在尝试创建一个具有两个不同div垂直交替的布局。例如,偶数必须是:图片+内容;奇怪的是:内容+图片。

这是我的代码,目前它会将每篇帖子打印两倍,每个div打印一次:

<div id="content">
<?php if (have_posts()) : while(have_posts()) : $i++; if(($i % 2) == 0) : the_post(); ?>

    <div id="leftcontent_1">
    <a href="<?php the_permalink(); ?>"><img src="<?php echo $image ?>"/></a>
    </div>

    <div id="rightcontent_1">
    <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>"><?php the_title(); ?></a></h2>

    <?php the_content(); ?>
    </div>      
    <div class="clear"></div>

<?php else : ?>

<div id="rightcontent_2">
    <a href="<?php the_permalink(); ?>"><img src="<?php echo $image ?>"/></a>
    </div>

    <div id="leftcontent_2">
    <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>"><?php the_title(); ?></a></h2>

    <?php the_content(); ?>
    </div>      
    <div class="clear"></div>

<?php endif; endwhile; endif; ?>
</div>
有没有关于如何修复它的提示?

提前谢谢你。

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

最小必要修正-移动the_post(); 到之前if(($i%2 == 0) :

例如:

<?php if (have_posts()) : while(have_posts()) : the_post(); $i++; if(($i % 2) == 0) :  ?>

SO网友:kaiser

内置于查询中的交替帖子样式(或类)并不难。这个$wp_query 对象有一个current_post 属性,您可以在此基础上进行构建。简单地用它做一些数学运算。

示例

一个非常基本的示例,用于检查我们是否得到偶数或奇数帖子。

global $wp_query;
if ( have_posts() )
{
    while( have_posts() )
    {
        the_post();
        if ( 0 === $wp_query->current_post %2 )
        {
            // do stuff for even posts

            // Jump to next post in the loop
            continue;
        }
        // do stuff for odd posts
    }
}

结束

相关推荐

Publish pages/posts as HTML?

我们希望为作者使用插件或自定义设置来创建页面或帖子,并将其发布为单个HTML文件。该文件可以保存在服务器上的特定目录中,或者在编辑器中有一个下载按钮。到目前为止,我们已经找到了2个几乎可以实现此功能的插件:WP Static OutputReally Static两者的工作方式非常相似,但需要管理员访问才能生成。它们还以以下方式创建文件:服务器上的目录/页面标题/索引。html我需要的地方服务器上的目录/页面标题/页面标题。html对此有何想法?有人做过类似的事情吗?提前谢谢。