Как получить данные для входа (сеанса) за пределами WordPress?
Я полагаю, WP использует сеанс PHP (или файл cookie) для сохранения данных для входа, верно?
У меня есть веб-сайт, который использует WP в качестве CMS, но отображает (и создает) контент извне. Я разрешаю анонимные сообщения, просто не передавая $post['post_author']
в wp_insert_post()
Однако я также хочу, чтобы пользователи (зарегистрированные в WP) могли входить в систему mysite/wp/wp-login.php
, а не перенаправляться на mysite/mypage.php
и получать user id
из сеанса или cookie.
Как мне это сделать это?
Редактировать
Код:
include( 'wp/wp-load.php');
global $current_user;
get_currentuserinfo();
print_r($current_user);
При этом выводится пустой объект WP_User:
WP_User Object ( [data] => [ID] => 0 [caps] => Array ( ) [cap_key] => [roles] => Array ( ) [allcaps] => Array ( ) [filter] => )
Хотя я вошел в систему в WP.
P.S.
Теперь, когда я увидел wp-login-form
в тегах, это дало мне лучшую идею.
Могу ли я разместить форму входа на своей странице (за пределами wp)? Это, безусловно, было бы лучше, так как это не потребовало бы от пользователей перенаправления.
Я хочу минимального (в идеале нулевого) взаимодействия между mysite/wp
и посетителями (включая Google Бот).
1 answers
Я решил свою проблему, и это определенно могло бы помочь и другим.
Проблема была с файлами cookie, так как моя структура папок была такой:
- mysite.com
- mysite.com/mypage.php
- мой сайт/wordpress/
Файлы cookie действительны только для папки wordpress и ее подкаталогов.
Чтобы активировать файлы cookie за пределами wordpress, я установил плагин root Cookie, и все работает нормально сейчас.
P.S.
Не НЕ изменять конфигурацию корневого файла cookie. Просто оставьте параметр Доменного имени пустым.