我想做的是,我想通过添加一个我已经连接到的下拉菜单来添加一个过滤器选项restrict_manage_users
, 因此,我可以根据特定的元值筛选用户。
我的问题
当我从下拉列表中选择一个选项并单击提交时,正在发送的数据(我在url中看到的内容)只是第一个选项,即使我选择了另一个选项,它仍然是正在发送的第一个选项。如果我尝试硬编码
selected
转换为第二个选项,然后更改为每次仅发送第二个选项。
代码
我已经删除了foreach循环,该循环遍历各个公司,并将它们回传到下拉列表中。
add_action( \'restrict_manage_users\' , \'restrict_to_company\' );
function restrict_to_company()
{
echo \'<select name="company_sorting" id="company_sorting">\';
echo \'<option value="0">Select a company</option>\';
echo \'<option value="1">Company 1</option>\';
echo \'<option value="2">Company 2</option>\';
echo \'</select>\';
echo \'<input type="submit" class="button" value="Sort" />\';
}
这是我在域名后的URL中得到的结果
/wp-admin/users.php?s&action=-1&company_sorting=0&paged=1&action2=-1
最合适的回答,由SO网友:Mads Andersen 整理而成
所以我找到了解决问题的办法。
这是因为WordPress在用户列表的顶部和底部都插入了下拉列表。因此,当我提交表单时,GET中使用的是页面底部的下拉列表,并覆盖顶部的下拉列表
为了解决这个问题,我刚刚删除了底部下拉列表,其中包含一行javascript,如下所示。
document.getElementsByClassName("companyDropdown")[1].innerHTML = "";
然后将下拉列表与类包装在一个div中
companyDropdown
.