首页 > 解决方案 > WordPress自定义帖子循环/每个项目的交替布局

问题描述

我正在尝试在 Wordpress 中创建自定义帖子类型循环。到目前为止,一切都很好。我设法做到了。但是,我想要每个项目的交替布局,如下所示:

Item1 > IMAGE / DESCRIPTION
Item2 > DESCRIPTION / IMAGE
Item3 > IMAGE / DESCRIPTION
Item4 > DESCRIPTION / IMAGE

你明白了。我对 PHP 很陌生,你会如何改变这个循环?

<?php
    $loop = new WP_Query( array( 'post_type' => 'menus', 'category_name' => '', 'ignore_sticky_posts' => 1, 'paged' => $paged ) );

    while ( $loop->have_posts() ): the_post() ?>
        <?php if ( $wp_query->current_post % 2 == 0 ) : ?>
            <h2><?php echo get_the_title(); ?></h2>
            <h2><?php echo the_content(); ?></h2>
        <?php else: ?>
            <h2><?php echo the_content(); ?></h2>
            <h2><?php echo get_the_title(); ?></h2>
        <?php endif ?>
    <?php endwhile ?>
?>

问题是,如果我这样做,我会遇到未定义的偏移错误。所以我想知道实现这一目标的正确方法是什么。任何输入表示赞赏!

标签: wordpressloops

解决方案


我认为这很接近。您可以尝试只使用一个简单的计数器,似乎您的循环设置在设置 post 对象时缺少 $loop 变量(我倾向于使用它,不确定是否需要),并且您正在调用一个对象'wp_query' 似乎不存在,您需要使用 $loop 或全局 $post。也许试试你的循环是这样的:

$count = 0;

while ($loop->have_posts()): $loop->the_post();
$count++;
    if ( $count % 2 === 0 ) : ?>
        <h2><?php echo get_the_title(); ?></h2>
        <h2><?php echo the_content(); ?></h2>
    <?php else: ?>
        <h2><?php echo the_content(); ?></h2>
        <h2><?php echo get_the_title(); ?></h2>
    <?php endif ;
endwhile; ?>

推荐阅读