Not quite sure why this is happening, hopefully someone can help. I have a wordpress installation, lets say for arguments sake it’s installed to http://www.example.com/wordpress. I have a file called test.php with the following code:
<?php
include '/php_path_to_blog/wp-blog-header.php';
echo get_current_user_id();
?>
Now the odd part is if i have a user logged in and place this file within my wordpress directory and call it by going to http://www.example.com/wordpress/test.php it outputs the correct user id of the current logged in user. However if I move the file to the root directory of the site and call it by going to http://www.example.com/test.php, it outputs 0 as if there were no user logged in.
It seems that some functions work properly outside of the installation directory and some don’t. I would like them to work outside the wordpress isntallation directory.
Any help would be greatly appreciated.
Very similar to this question of a couple of hours ago: How can I get a list of latest posts outside of my WP install?
Use
chdir()
to move into WordPress root before including and even calling anything related to WordPress. The are cases where relative directory and file references are used, thus breaking many things.You can return to the previous directory afterwards by storing the
get_cwd()
first.Additionally, seeing that you’re working with session cookies, the paths for these cookies are invalid for the URI you’re working from. The browser will not send the WordPress authentication cookies that you have acquired previously since the domain roots are invalid and outside of the WordPress scope. You will need to alter the roots of these cookies from WordPress with something like this http://wordpress.org/extend/plugins/root-cookie/.