web-dev-qa-db-fra.com

Comment obtenir les données de connexion (session) en dehors de WordPress?

Je suppose que WP utilise une session PHP (ou un cookie) pour enregistrer les données de connexion, n'est-ce pas?

J'ai un site Web qui utilise WP en tant que CMS, mais affiche (et crée) du contenu de l'extérieur. J'autorise les publications anonymes, simplement et non en passant $post['post_author'] à wp_insert_post()

Cependant, je souhaite également que les utilisateurs (qui sont inscrits dans WP) puissent se connecter à mysite/wp/wp-login.php, qu’ils soient redirigés vers mysite/mypage.php et qu’ils obtiennent le user id à partir de la session ou du cookie.

Comment je fais ça?

Modifier

Le code:

include( 'wp/wp-load.php');  
global $current_user;
get_currentuserinfo();
print_r($current_user);

this affiche un objet WP_User vide:

WP_User Object ( [data] => [ID] => 0 [caps] => Array ( ) [cap_key] => [roles] => Array ( ) [allcaps] => Array ( ) [filter] => ) 

Bien que je sois connecté à WP.

P.S.
Maintenant que j'ai vu wp-login-form dans les balises, cela m'a donné une meilleure idée.

Puis-je mettre un formulaire de connexion sur ma page (en dehors de wp)? Ce serait sûrement mieux, car cela ne nécessiterait pas de redirection des utilisateurs.

Je souhaite une interaction minimale (idéalement nulle) entre mysite/wp et les visiteurs (y compris Google Bot).

1
jeff

J'ai résolu mon problème et cela pourrait certainement aider les autres aussi.

Le problème était avec les cookies puisque ma structure de dossier était comme ceci:

  • mysite.com
  • mysite.com/mypage.php
    • mysite/wordpress /

les cookies n'étaient valables que pour le dossier wordpress, et ses sous-répertoires.

Afin d'activer les cookies en dehors de Wordpress, j'ai installé le plugin root Cookie , et tout fonctionne correctement maintenant.

P.S.

DoNOTmodifiez la configuration du cookie racine. Laissez simplement le paramètre de nom de domaine vide.

2
jeff