You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让wp_dropdown_categories提交表单后保留选中值?

解决wp_dropdown_categories提交表单后保留选中值的问题

很简单,你只需要给wp_dropdown_categories()添加selected参数,绑定用户提交的分类ID就能实现这个需求。下面是具体的修改步骤:

修改表单代码

把你原来的wp_dropdown_categories调用改成数组参数形式(比字符串参数更易维护),同时传入从$_GET获取到的选中ID:

<form method="get" action="#anchor" id="findresult">
    <?php
    // 安全获取提交的分类ID,未提交时默认0
    $selected_location = isset($_GET['location']) ? intval($_GET['location']) : 0;
    
    wp_dropdown_categories([
        'name'      => 'location',
        'child_of'  => 2,
        'selected'  => $selected_location // 关键:设置选中项
    ]);
    ?>
    <input id="submit" type="submit" value="SEARCH"/>
</form>

代码说明

  • 用isset()判断$_GET['location']是否存在,避免页面首次加载时出现PHP Notice错误;intval()确保值为整数,防止恶意输入。
  • WordPress的wp_dropdown_categories函数会自动识别selected参数,将对应ID的分类选项设为选中状态,完全不需要手动拼接HTML。

优化你的分类名称获取代码

你之前的代码可以做个小优化,避免无效ID导致的错误,同时添加安全转义:

<?php
$locid = isset($_GET['location']) ? intval($_GET['location']) : 0;
// 只有ID有效时才获取分类名称
$locname = $locid ? get_cat_name($locid) : '';
?>
<h1><?php echo esc_html($locname); ?></h1>

这里的esc_html()是WordPress开发的最佳实践,用来转义输出内容,防止XSS攻击。

内容的提问来源于stack exchange,提问作者Johnny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:35:50