web-dev-qa-db-fra.com

Afficher une page privée publiée avec un code d'URL (aucun identifiant requis)

L’objectif est de permettre aux plus grandes entités/clients de réviser le contenu sans avoir besoin d’un identifiant/compte d’utilisateur pour chaque détenteur de la pile de projet impliqué en fournissant une URL unique au brouillon final de la page/publication pour révision et/ou approbation.

Nous voulons créer/trouver un plug-in qui permettra aux gens de voir une page "publiée de manière privée" à partir d'une URL unique ... ce serait donc similaire aux services de partage de fichiers tels que dropbox où vous pouvez envoyer un lien codé privé tel que www.somewebsite .com /? page = 76 & code = an30f90sk30ifkas0fsd9f9sf ...

Si vous avez ce code et qu'il est correct, vous n'avez pas besoin de vous connecter au site Web pour voir la page. Une fois que la page est définie sur privée et publiée, nous indiquons au public le "lien" où un utilisateur peut copier et coller celui-ci pour que les clients puissent consulter/etc ...

Nous n'avons pas été en mesure de trouver un plug-in capable de le faire pour nous. Nous souhaitons donc construire quelque chose tout en souhaitant obtenir des conseils sur les options de direction ou les fonctions que nous souhaitons peut-être examiner.

1
Amber Lynn

Vous pouvez en fait relier la fonction de mot de passe page/post intégrée et la configurer pour vérifier les paramètres d'URL qui correspondent à ce mot de passe, puis modifier la valeur de $required en false.

add_filter( 'post_password_required', 'my_allow_url_param', 10, 2 );

function my_allow_url_param( $required, $post ) {

    if ( empty( $post->post_password ) ) {
        $required = false;
         return $required;
    }

    if ( $_GET['code'] == $post->post_password ) {
       $required = false;
    }
    return $required;
}

Si vous aviez une page avec le slug de /sample-page/ et que l'administrateur définissait un mot de passe de Cf5aTgZqBz5h6g1y858eQmpTWizzHzZN dans les paramètres de visibilité de l'écran d'édition de cette page, vous pouvez y accéder sans vous connecter ni taper de mot de passe avec l'URL suivante:

http://sitename.com/sample-page/?code=Cf5aTgZqBz5h6g1y858eQmpTWizzHzZN

0
hwl