Как добавить параметры в URL, чтобы показать разный контент на одной странице? - PullRequest
0 голосов
/ 07 сентября 2018

В настоящее время я работаю над проектом WordPress, и на одной из страниц у меня есть форма на этой странице, которая проверяет, есть ли введенные пользователем данные в базе данных. При отправке я хотел бы добавить параметры к URL-адресу одной и той же страницы (например, page = 1) и отображать различное содержимое в зависимости от параметра URL.

Я попытался добавить параметры через атрибут действия формы.

<form action="form.php?page=1" method="post" id="orderinfo">

Но это приводит к следующему:

enter image description here

Где вместо добавления параметров на текущую страницу создается новая страница.

Правильно ли я говорю об этом?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

В Wordpress вам необходимо зарегистрировать пользовательские строковые переменные запроса, чтобы wordpress обрабатывал их соответствующим образом.

Вы можете сделать это с помощью фильтра:

function additional_query_vars($vars) {
  $vars[] .= 'your_custom_variable';
  return $vars;
}
add_filter( 'query_vars', 'additional_query_vars' );

Итак, теперь вы добавили их, и Wordpress знает о них, вы можете использовать get_query_var, чтобы получить их на своей странице или в другом месте.

Например:

 $my_var= get_query_var('your_custom_variable');
0 голосов
/ 07 сентября 2018

Вы можете использовать ловушку wordpress template_redirect для этого. В вашем файле functions.php вы можете добавить:

add_action('template_redirect', 'form_proccess');
function form_proccess() {
  if( isset($_POST['submit']) ) {
    // some validation here

    wp_safe_redirect( get_permalink().'?page=1'); exit;
  }
}

и в вашем теге формы установите для действия пустую строку или the_permalink ();

также параметр страницы может быть зарезервированным параметром WordPress, так что вы можете попробовать другой, например, например, success, и другой для ошибки, если проверка не пройдена, и перенаправить на ошибку.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...