Избегать многократных вызовов is_user_logged_in () & wp_get_current_user ()? - PullRequest
1 голос
/ 17 февраля 2020

Первоначально я создал один файл. php с несколькими функциями для интеграции форм Gravity в потребности веб-сайта. Плагин вырос до 8000 строк, прежде чем я разбил его на несколько файлов в одной папке; это было просто слишком много прокрутки и трудно для него организовано, как я работал над этим. Функции в значительной степени зависят от пользователя и его ролей, затрагивая почти каждую функцию. После того, как функции были разделены на разные файлы, мне нужно включить

$user = is_user_logged_in() ? wp_get_current_user() : null;
if ($user) {
    $roles = $user->roles;
}

и часто приходится запускать этот объект $ user через одну из нескольких других функций, чтобы увидеть, попадают ли они в группы и категории.

Я не могу сказать, сохраняет ли WordPress каким-либо образом пользователя (и последующие вызовы ссылаются только на объект), или каждый вызов является запросом и создает новый экземпляр. Если последнее, есть ли более умный способ go сделать это (возможно, создать свой собственный класс пользователя, чтобы избежать повторного вызова тех же вызовов)?

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