WordPress循环样式的帖子行不同

时间:2012-09-27 作者:fshequin

我正在尝试调整Wordpress循环,以使帖子的行样式不同,这些行变得无限小,直到所有帖子都显示出来

这里的概念是按行显示帖子

第一行第1行第2行第3行第4行第5行第6行第7行第。。。直到所有帖子都被取回。

下面的代码是有限的,不能执行上面的操作。您将如何调整以使下面的代码执行上面的操作?

以下代码是功能性代码,并且can be seen here.

<?php if (have_posts()) : ?>
<?php $count = 0; ?>
<?php while (have_posts()) : the_post(); ?>
<?php $count++; ?>
<?php if ($count == 1) : ?>
<div class="style-1"><?php the_content(); ?></div>
<?php elseif ($count == 2 || $count == 3) : ?>
<div class="style-2"><?php the_content(); ?></div>
<?php elseif ($count == 4 || $count == 5 || $count == 6) : ?>
<div class="style-3"><?php the_content(); ?></div>
<?php elseif ($count == 7 || $count == 8 || $count == 9 || $count == 10) : ?>
<div class="style-4"><?php the_content(); ?></div>
<?php elseif ($count == 11 || $count == 12 || $count == 13 || $count == 14 || $count == 15 ) : ?>
<div class="style-5"><?php the_content(); ?></div>
<?php elseif ($count >= 16 ) : ?>
<div class="style-6"><?php the_content(); ?></div>
<?php endif; ?>
<?php endwhile; ?>
非常感谢您的帮助!

谨致问候,

弗雷德·谢奎因

3 个回复
SO网友:kaiser

基本上只是一些数学,但你可以使用$wp_query 属性非常适合这种情况:

增量

global $wp_query;
if ( have_posts() )
{
    while ( have_posts() )
    {
        the_post();

        printf(
            \'<div %s>%s</div>\',
            get_post_class( "style-{$wp_query->current_post}" ),
            // OR:
            // get_post_class( "style-".++$wp_query->wpse66475_increment_posts )
        );
    }
} // endif;
因此,第一次style-n 在连接到<div>-班

减量;基本相同,但在自定义属性和“读取”设置的帮助下,情况相反:

global $wp_query;
$wp_query->wpse66475_decrement_styles = get_option( \'posts_per_page\' );
if ( have_posts() )
{
    while ( have_posts() )
    {
        the_post();

        printf(
            \'<div %s>%s</div>\',
            get_post_class( "style-".$wp_query->wpse66475_decrement_styles-- )
        );
    }
} // endif;

// clean up:
unset( $wp_query->wpse66475_decrement_styles );
这一次,我们在那篇文章中循环后减少了。由于该选项,这将与我们在分页帖子上的设置完全一致(如果我们需要的话)。我们也可以直接去$wp_query->found_posts.

SO网友:Rarst

这实际上是PHP而不是WP。我的接受循环是这样的:

$level = 1;

while ( have_posts() ) : the_post();

    if ( ( $level - 1 ) <= $wp_query->current_post ) {
        echo "current level {$level}";
        $level *= 2;
    }

    the_title();

endwhile;

SO网友:Dev

像这样的方法会奏效:

    global $wp_query;

    $post_counter = $wp_query->current_post;

    if ( 0 == $post_counter ) {
        $classes[] = \'style-1\';
    }

    if ( $post_counter == 1 ) {
        $classes[] = \'style-2\';

    return $classes;

}
您可以尝试使用pre\\u get\\u posts或新的WP\\u查询

结束

相关推荐

Redirect Loops Problems

我不知道到底发生了什么事。昨天,它工作得很好。我回忆起今天早上我所做的让我陷入这种困境的事情。昨天,我刚刚在PhpMyAdmin编辑帖子。好吧,不管怎样,我禁用了所有插件,并找出什么不起作用。这是插件自定义永久链接。My problem is that I have about hundred videos in youtube, and each video is given with Custom Permalink set. I want to keep the Custom Permalink P