Отправка форм внутри собственного плагина, вызывающего перенаправление страницы - PullRequest
0 голосов
/ 06 июня 2019

У меня есть две проблемы с моим плагином.Во-первых, когда я отправляю форму ниже, она перенаправляет меня из моего плагина.Это исходная ссылка, за которой следует ссылка для перенаправления;

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, но, возможно, это поможет понять это

1 Ответ

2 голосов
/ 06 июня 2019

Для перенаправления вы можете посмотреть инициализатор, который вы вызываете на new WP_User_Query( $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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...