如何在查询中获取并显示帖子的“位置”?

时间:2009-09-03 12:50:36

标签: php wordpress wordpress-theming

我有一个简单的查询:$query = new WP_Query('showposts=5');,显然会显示5条最新帖子。有没有办法在查询中获得帖子的位置?按位置我的意思是... $ query有5个帖子,我需要能够在循环中显示帖子的数量。我真的不知道PHP,但我假设$ query是一个包含这5个帖子的数组变量(?)。

它会在JavaScript滑块中使用,我会在每个帖子中显示<a href="#1"></a>这样的链接,我需要第二个帖子为2,第三个为3。

希望有任何意义,有人可以帮助我。

提前致谢, 海宁

3 个答案:

答案 0 :(得分:4)

为了获得更多防弹行为,我会使用每个帖子的UID(使用the_ID())创建锚点链接,而不是使用他们在页面上的位置。

此外,您应该使用the loop进行迭代$query,您可以在页面中多次执行此操作。 (暂时没有使用过Wordpress,这段代码可能有点不对,但概念很合理)

<?php 

// Create the Query
$query = new WP_Query('showposts=5');

if ($query->have_posts()) :

    // Create the Javascript slider thing
    while ($query->have_posts()) : $query->the_post();
        // Do stuff here
    endwhile; 

    // Display the posts
    while ($query->have_posts()) : $query->the_post();
        // Do stuff here
    endwhile;

endif;

?>

答案 1 :(得分:1)

$ query-&gt; current_post将为您提供循环中当前项的索引。此外,$ query-&gt; post_count为您提供循环中项目的总数。这也许会有所帮助。

答案 2 :(得分:0)

这并不难(我复制了cpharmston的PHP代码):

<?php 

// Create the Query
$query = new WP_Query('showposts=5');

if ($query->have_posts()) :

    $i = 1; // for counting

    // Create the Javascript slider thing
    while ($query->have_posts()) : $query->the_post();
        // Do stuff here
        $i++; // make sure this is @ the end of the while-loop
    endwhile;


    $i = 1; // reset $i to 1 for counting

    // Display the posts
    while ($query->have_posts()) : $query->the_post();
        // Do stuff here
        $i++; // make sure this is @ the end of the while-loop
    endwhile;

endif;

?>

你可以使用$ i代替#1,#2等。每当while循环结束时,$ i ++确保它以1递增(所以在第一次$ i = 2之后)。< / p>

希望这会有所帮助:)(我确实认为cpharmston的解决方案会更容易)。