while函数和if语句在WordPress中返回错误

时间:2014-04-19 19:13:00

标签: php wordpress

我使用以下代码列出我的wordpress网站上的所有帖子,我正在尝试拨打"选择"如果ID是当前选中的圆锥,但奇怪的是它调用if语句3次而不是一次,即使所有ID都不同。

我的代码:

function test($id) {
    // The Query
    query_posts( array ('posts_per_page' => -1 ) );
    // The Loop
     while ( have_posts() ) : the_post(); 
     if ($id == get_the_ID()) { $selected = " selected"; }
     ?>
    <option value="<?php echo get_the_ID(); ?>"<?php echo $selected; ?>><?php echo get_the_title() ?></option><?php echo "\n"; ?>
    <?php endwhile;
    // Reset Query
    wp_reset_query();
    }

我的输出:

<select name="w_url">
<option value="493">TEST 1</option>
<option value="390">TEST 2</option>
<option value="388" selected>Test 3</option>
<option value="386" selected>Test 4</option>
<option value="384" selected>Test 5</option>
</select>

我确实选择了第三个选项,所以它正确地显示了一个,但继续到第4个和第5个。我确信它的一些简单但我无法看到它

1 个答案:

答案 0 :(得分:2)

在变量$selected获得“选定”值后,它不会在进一步迭代中更改值。你应该使用像

这样的东西
if ($id == get_the_ID()) { 
    $selected = " selected"; 
} else { 
    $selected = ""; 
}