下面的行为应该是用户在下拉框中进行选择,页面将刷新为的查询参数editevent=1
并在选定内容的情况下传递帖子ID的值。在下拉列表上方,应该是
职位ID:[此处职位ID]
这段代码有问题:
<option value="<?php the_ID(); ?>"><?php the_title(); ?>
</option>
当我将帖子的ID作为值时,它会使表单重定向到实际的帖子,而不仅仅刷新当前页面。我不明白为什么会这样。我把表格设置为
action="#"
代码中没有任何URL的永久链接引用。
以下是完整片段:
<?php if ($_GET[\'editevent\'] == true) {
echo \'Post ID: \'.$_GET[\'page_id\'];
}
?>
<form method="GET" action="#">
<select name="page_id" id="page_id" onchange="this.form.submit()">
<?php
global $post;
$args = array( \'numberposts\' => -1, \'post_type\' => \'event\', \'season\' => \'2013-2014\');
$posts = get_posts($args);
foreach( $posts as $post ) : setup_postdata($post); ?>
<option value="<?php the_ID(); ?>"><?php the_title(); ?>
</option>
<?php endforeach; ?>
</select>
<input type="hidden" name="editevent" value="true" />
</form>
最合适的回答,由SO网友:tfrommen 整理而成
重命名您的<select>
除了page_id
.
问题是page_id
已由WordPress获取(并处理)(作为查询变量)。
这应该做到,例如:
<?php
if (isset($_GET[\'editevent\']) && true == $_GET[\'editevent\'])
echo \'Post ID: \'.$_GET[\'my_page_id\'];
?>
<form method="GET" action="#">
<select name="my_page_id" id="my_page_id" onchange="this.form.submit()">
<?php
$args = array(
\'posts_per_page\' => -1,
\'post_type\' => \'event\',
\'season\' => \'2013-2014\',
);
$posts = get_posts($args);
foreach ($posts as $post) :
setup_postdata($post);
?>
<option value="<?php the_ID(); ?>"><?php the_title(); ?></option>
<?php
endforeach;
?>
</select>
<input type="hidden" name="editevent" value="true" />
</form>