Как передать данные формы между файлами шаблонов в WP? - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь определить, какая форма поиска используется пользователем в WP и, в зависимости от ответа, вывести конкретный шаблон.

У меня есть общее представление о том, как этого добиться, но WP не передает информацию о форме в шаблон search.php.Например, входное значение.

Как можно предоставить search.php с отправленными данными формы?

Это то, что у меня пока есть;

находится в архиве.php

<form>
    <input type="hidden" name="formName" value="globalSearch"/>
</form

Находится в search.php

<?php $formIdentifier = $_GET['formName']; ?>
<?php if ( strcmp( $formIdentifier, 'globalSearch' ) ) { ?>
    // Show foo
<?php } else { ?>
    // Show bar
<?php } ?>

И это ответ из браузера:

Примечание: Неопределенный индекс: formName в -

/ wp-content / themes / understrap-child / search.php


РЕДАКТИРОВАТЬ: 26 июня 2019 @ 15: 38

После некоторого тестирования выяснилось, что WP делает некоторые из моих вещей с моими URL, в результате чего получаются более чистые URL, такие как;www.example.com/posts/hello-world Вы не можете получить доступ к переменной $GET без ее отображения в браузере (по крайней мере, насколько мне известно.)

Отключение этой функции означает, что мои URL теперь читаются;www.example.com/s=testing&formName=catalogueSearch&submit= и теперь аргумент search.php, который я построил, работает, как и ожидалось.

1 Ответ

1 голос
/ 26 июня 2019

Попробуйте этот фрагмент.

if(isset($_GET['formName'])) {
    $type = $_GET['formName'];
    if($type == 'globalSearch') {
        load_template(TEMPLATEPATH . '/normal-search.php');
    } elseif($type == 'books') {
        load_template(TEMPLATEPATH . '/global-search.php');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...