在WordPress循环中显示帖子顺序排名

时间:2017-01-20 作者:Jordan Lewallen

我试图在主页上显示数字后序排名,但是,我使用的是template\\u部件,不知道当html与wordpress循环分离时如何做到这一点。

以下是我想看到的:

ranking concept

这是我的循环index.php

<div class="most-recent-feed">
    <?php
    if ( have_posts() ) :
        if ( is_home() && ! is_front_page() ) : ?>
        <header>
            <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
        </header>
        <?php
        endif;
        $post_ranking = 1;
        /* Start the Loop */
        while ( have_posts() ) : the_post();
            ?> <h1> <?php echo $post_ranking ?> </h1> <?php
            /*
             * Include the Post-Format-specific template for the content.
             * If you want to override this in a child theme, then include a file
             * called content-___.php (where ___ is the Post Format name) and that will be used instead.
             */
            get_template_part( \'template-parts/content\', get_post_format() );
        endwhile;
        the_posts_navigation();
    else :
        get_template_part( \'template-parts/content\', \'none\' );
    endif; 
wp_reset_query();

?>
</div>
这是我的相关htmltemplate_parts/content.php (请注意排名编号的注释:

<div class="album-dark-overlay play">
    <div class="ranking-triangle">
    <!-- Ranking number should be placed here -->
    </div>
    <div id="<?php echo $youtube_id ?>" data-youtube-id="<?php echo $youtube_id ?>" class="media-circle">
        <i class="icon ion-ios-play"></i><i class="icon ion-pause"></i>
    </div>
</div>

2 个回复
SO网友:cjbj

将变量传递给模板部件并不简单。然而,当您处于循环中时,WPa counter called current_post 可以在模板部件中以这种方式使用:

global $post;
$ranking = $post->$current_post + 1; // +1 because the counter starts at 0

SO网友:Samuel Asor

我建议您有两种方法:

您可以将帖子排名存储在数据库中wp_postmeta 或任何您选择的表,然后通过WP_QUERY 或者你的任何选择echoed 在您想要的位置

OR

<您可以使用PHP for 环获取立柱的长度(posts_per_page) 然后遍历每个结果,然后根据第一、第二、第三、第四等重复排名。下面是一个示例:

// Get the length of the items (which is determined by the number you enter in \'posts_per_page\'
$loop_length = 6 // using this as an example
for( $i = 0; $i <= $loop_length; $i++ ) {
  echo $i;
}
// Your result will be 1, 2, 3, 4, 5, 6.
希望这有帮助。

相关推荐

Last post in loop when even

我使用这段代码尝试检查每个页面上的最后一篇文章循环是否均匀,以便添加不同的类。这可以检查它是否是最后一篇文章:( ( 1 == $wp_query->current_post + 1 ) == $wp_query->post_count ) 这可以检查它是否是一个均匀的帖子( $wp_query->current_post % 2 == 0 ) 但这并没有检查这是否是最后一篇文章,甚至。 ( ( 1 == $wp_query->current_post + 1