Как использовать $ _get на страницах wordpress

Вот в чем дело ...

Я создал кнопку, которая при нажатии открывает ссылку вроде

 https://www.something.com/something/?term=something

или [сначала я подумал, что это проблема с URL ... поэтому я попробовал другой] Например: -

 https://www.something.com/something.php?term=something
 https://www.something.com/something?term=something

а еще

теперь по этой ссылке я хочу повторить эхо $ _GET ['term'] ... чего не происходит, в консоли нет ошибки ... как иметь возможность повторить это

Я знаю, что ответ находится в этом документе, но я не знаю, как использовать эту штуку ... Кто-нибудь, пожалуйста, опишите правильный способ шаг за шагом ... https://codex.wordpress.org/Function_Reference/get_query_var

echo $_GET['term'] всегда будет работать.
ArtisticPhoenix 13.09.2018 19:05

Вы намерены пройти маршрутизацию Wordpress или получить прямой доступ к файлу php на вашем сервере?

solarc 13.09.2018 19:08
1
2
356
2

Ответы 2

get_query_arg: получить только общедоступная переменная запроса в классе WP_Query глобального объекта $ wp_query.

Предлагаю для безопасности использовать класс перезаписи в Wordpress:

/**
 * Add rewrite tags and rules
 *
 * @link https://codex.wordpress.org/Rewrite_API/add_rewrite_tag
 * @link https://codex.wordpress.org/Rewrite_API/add_rewrite_rule
 */
/**
 * Add rewrite tags and rules
 */
function myplugin_rewrite_tag_rule() {
    add_rewrite_tag( '%city%', '([^&]+)' );
    add_rewrite_rule( '^city/([^/]*)/?', 'index.php?city=$matches[1]','top' );
}
add_action('init', 'myplugin_rewrite_tag_rule', 10, 0);

для добавления в аргумент запроса:

/**
 * Register custom query vars
 *
 * @param array $vars The array of available query variables
 * 
 * @link https://codex.wordpress.org/Plugin_API/Filter_Reference/query_vars
 */
function myplugin_register_query_vars( $vars ) {
    $vars[] = 'city';
    return $vars;
}
add_filter( 'query_vars', 'myplugin_register_query_vars' );

пример ссылки на сайте: yoursite.com/city/45

получить данные в wordpress:

$city = get_query_var( 'city' );
echo $city;

не сработало .... я вставил функцию в function.php и get_query_war на главной странице ... пожалуйста, помогите

user10280601 16.09.2018 13:17

вы должны сбросить перезапись после копирования этого кода. перейдите к настройке -> постоянная ссылка и нажмите кнопку, чтобы сохранить.

Mehrshad Darzi 16.09.2018 20:41

Это довольно просто

echo get_query_var( 'term', 'default_value'); 

Очевидно, вам нужно добавить это в functions.php для пользовательских переменных.

function add_query_vars_filter( $vars ) {
  $vars[] = "my_var";
  return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );

читать дальше здесь

Не забывайте, что вам нужно зарегистрировать пользовательские переменные запроса, как упомянул Мехрсахд в своем ответе.

Kai Qing 13.09.2018 22:23

Я добавил приведенный выше код на главную страницу ... и второй код в файл function.php моей темы, но он повторяет "default_value".

user10280601 14.09.2018 13:42

@ user10280601 замените значение my_var переменной строки запроса, а также значение "term" в этой строке get_query_var ('term', 'default_value'); с переменной строки запроса. а default_value - необязательный параметр в этой функции, чтобы показать что-то по умолчанию, если строковая переменная запроса не найдена, поэтому вы можете установить ее, как хотите.

Ashfaque Ali Solangi 14.09.2018 17:47

@AshfaqAhmed Я уже сделал это, но он по-прежнему повторяет "значение по умолчанию"

user10280601 14.09.2018 18:37

@KaiQing, я сделал то, что вы сказали .... первый код в function.php и второй на обычной странице, но он повторяет "значение по умолчанию"

user10280601 16.09.2018 13:18

Другие вопросы по теме