Wordpress: использовать set_query_var в функции несколько раз в сообщении? - PullRequest
0 голосов
/ 05 августа 2020

В моей теме WordPress один из моих коротких кодов вызывает функцию, которая использует set_query_var. Я не понимаю масштабов. Можно ли использовать этот сокращенный код более одного раза в сообщении? Это использование set_query_var локально для короткого кода? Поскольку он переходит в другие части темы, я думаю, что он должен быть глобальным. Пример:

function my_func ($atts) {
     var $the_amount = $atts['amount']; //passed from the short code
     set_query_var('my_amount', $the_amount);
}

Использование короткого кода, который вызывает эту функцию более одного раза в сообщении, похоже, работает нормально, но я не знаю, приемлемо ли это.

1 Ответ

1 голос
/ 05 августа 2020

Нет, set_query_var не является локальным. Значение устанавливается глобально.

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

Но пока ваш шорткод хорошо написан, он должен быть в порядке.

Обратите внимание, что причина его использования (даже при передаче информации через глобальные переменные плохая практика), потому что в настоящее время это единственный способ передать переменные другим частям шаблона. Однако следующий выпуск WP (v5.5) наконец предложит способ передачи переменных между файлами шаблонов , и как только эта версия широко используется, это будет лучший и более чистый способ. для передачи информации между файлами шаблонов.

Передача аргументов в файлы шаблонов в WordPress 5.5

...