我的插件有两个问题。第一个是当我提交下面的表单时,将我重定向到插件之外。这是原始链接,后跟重定向链接;
https://mywebsite.uk/wp-admin/admin.php?page=plugin-name&paged=1
https://mywebsite.uk/wp-admin/admin.php?search=hello
我要做的就是将搜索查询添加到当前链接/查询中。为什么我被重定向?
我的第二个问题是我希望能够将搜索元查询添加到我的$ args中 如果已设置。我知道如何检查它是否已设置,但是我不知道如何将其添加到$ args中。现在,我只是将查询放入if语句中,请参见下面的代码。
<?php
$current_page = ( $_GET['paged'] ) ? $_GET['paged'] : 1;
$users_per_page = 100;
$args = array(
'number' => $users_per_page,
'paged' => $current_page,
);
$users = new WP_User_Query( $args );
if( $_GET['search'] ){
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'first_name',
'value' => $_GET['search'],
'compare' => 'LIKE'
)
)
}
?>
<form action="" method="GET">
<label>
Search:
<input type="text" name="search">
</label>
</form>
更新
如果我在表单上将GET更改为POST,则不再获得重定向。这并不能解决我的问题,因为我需要使用GET,但也许可以帮助解决这个问题
答案 0 :(得分:2)
对于重定向,您可以查看在new WP_User_Query( $args );
处调用的初始化程序。也许这会重定向吗?
要将搜索查询添加到args,您可以将if语句上移并首先进行检查。
<?php
$current_page = ( $_GET['paged'] ) ? $_GET['paged'] : 1;
$users_per_page = 100;
$args = array(
'number' => $users_per_page,
'paged' => $current_page,
);
if( $_GET['search'] ){
$args['meta_query'] = array(
'relation' => 'OR',
array(
'key' => 'first_name',
'value' => $_GET['search'],
'compare' => 'LIKE'
)
)
};
$users = new WP_User_Query( $args );
?>
<form action="" method="GET">
<label>
Search:
<input type="text" name="search">
</label>
</form>