web-dev-qa-db-fra.com

Verrouiller l'un des WP Sites réseau pour utilisateurs non inscrits

J'ai un réseau de blogs (Multisite), avec le plug-in de mappage de domaine installé, et certains de mes sites sont en développement, je souhaite donc les verrouiller contre les utilisateurs non enregistrés.

J'ai testé quelques plugins conçus à cet effet ( privé uniquement , privé WP suite , WP privé , membres uniquement , utilisateurs enregistrés uniquement , Confidentialité absolue et Wp-Private ) et tout a échoué.

J'ai accédé au site, vu le formulaire de connexion, rempli le formulaire, marqué "Mémoriser mes informations", connecté et j'ai été redirigé vers le tableau de bord (section utilisateur) et non vers le site lui-même. Lorsque je suis entré à nouveau dans l'URL du site (domaine), j'ai à nouveau vu la page de connexion, même si j'ai marqué "Mémoriser mes informations". Il n'y a pas moyen que je puisse accéder au site lui-même.

J'ai même écrit mon propre plug-in, aussi simple que possible, pour cela:

function show_guest_notice()
{
    if(!is_user_logged_in())
    {
        echo('No way, man!');
        die();
    }
}

add_action('get_header', 'show_guest_notice');

et cela a également échoué.

Il semble que le cookie de l'utilisateur is_user_logged_in() ou de la chaîne a échoué sur le plug-in Multisite with Domain Mapping.

J'ai vu ce message et réponds par amontobin (" (.. .) était un problème de cookie de mappage de domaine. Maintenant, fonctionnait bien ", mais cela m’a seulement assuré que l’utilisation de Multisite avec Domain Mapping était source de ces problèmes, mais qu’elle n’apportait aucune solution.

Alors, est-ce que quelqu'un peut m'aider ou avoir une idée de la façon de faire fonctionner le bloking de site (is_user_logged_in()) sur un réseau multisite avec le plugin Domain Mapping activé?

3
trejder

Je ne dispose pas actuellement du mappage de domaine sur une installation de test, mais ce qui devrait fonctionner est:

add_action( 'template_redirect', 'auth_redirect' );

En tant que plugin ici: T5 Forcer la connexion .
auth_redirect() est le gestionnaire natif de WordPress pour l’authentification. Si cela ne fonctionne pas, quelque chose est brisé dans le code.

2
fuxia

Vous pouvez utiliser le plugin Authenticator , cela fonctionne aussi avec Multisite.
Si vous publiez différentes parties du contenu via oauth ou un kex, utilisez la version de développement .

1
bueltge