I guess WP uses a PHP session (or a cookie) to save login data, right?
I have a website, which uses WP as a CMS, but display (and create) content from outside. I allow anonymous posts, by simply not passing $post['post_author']
to wp_insert_post()
However, I also want to make users (that are registered in WP) to be able to login in mysite/wp/wp-login.php
, than redirect to mysite/mypage.php
, and get the user id
from session or cookie.
How do I do that?
Edit
The code:
include( 'wp/wp-load.php');
global $current_user;
get_currentuserinfo();
print_r($current_user);
this prints an empty WP_User Object:
WP_User Object ( [data] => [ID] => 0 [caps] => Array ( ) [cap_key] => [roles] => Array ( ) [allcaps] => Array ( ) [filter] => )
Although I’m logged in in WP.
P.S.
Now that I saw wp-login-form
in tags, which gave me a better idea.
Can I put a login form to my page (outside wp) ? This would surely be better, since it wouldn’t require the users to redirect.
I want minimum (ideally zero) interaction between mysite/wp
and visitors (including Google Bot).
1 Answer
I solved my problem, and it could definitely help others too.
The problem was with cookies since my folder structure was like this :
- mysite.com
- mysite.com/mypage.php
- mysite/wordpress/
the cookies were only valid for wordpress folder, and it’s subdirectories.
In order to activate the cookies outside wordpress, I installed the root Cookie plugin, and everything works fine now.
P.S.
Do NOT change the configuration of root Cookie. Just leave the Domain Name setting as empty.