添加用户筛选器-不更新URL中的数据

时间:2016-06-01 作者:Mads Andersen

我想做的是,我想通过添加一个我已经连接到的下拉菜单来添加一个过滤器选项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

1 个回复
最合适的回答,由SO网友:Mads Andersen 整理而成

所以我找到了解决问题的办法。

这是因为WordPress在用户列表的顶部和底部都插入了下拉列表。因此,当我提交表单时,GET中使用的是页面底部的下拉列表,并覆盖顶部的下拉列表
为了解决这个问题,我刚刚删除了底部下拉列表,其中包含一行javascript,如下所示。

document.getElementsByClassName("companyDropdown")[1].innerHTML = "";

然后将下拉列表与类包装在一个div中companyDropdown.

相关推荐

WP_Query filters

这个问题可能看起来很愚蠢,但我真的没有找到有用的链接。我正在尝试做一个简单的查询,在这里我选择了最近的10篇文章,我希望能够在循环中只显示这10篇文章中的1篇我的代码看起来像 // Query latest 10 records $the_query = new WP_Query( array( \'post_type\' => \'post\', \"order\" => \"DESC\", \'posts_per_page