web-dev-qa-db-fra.com

Mot de passe protecteur le média

Est-il possible de protéger par un mot de passe un PDF pour les visiteurs de notre site Web (pas les utilisateurs)? Nous avons chargé un PDF sur notre média et créé un lien vers celui-ci sur une page, mais nous souhaitons protéger par mot de passe uniquement ce PDF et non la page entière contenant le lien il.

1
Sharon Drake

une solution supplémentaire qui peut fonctionner sans nécessiter de codage consiste à insérer le PDF dans un message et à le protéger. Puis insérez le post sur la page

0
Matt Morgan

vous pouvez le faire en ajoutant le code suivant dans votre fichier de fonction de thèmes ou en créant un plugin. Cela n'affichera pas le lien sauf si l'utilisateur est connecté.

Ce n'est pas la meilleure façon de le faire, de loin, car la liaison à chaud peut toujours être faite en utilisant le chemin direct du fichier. Vous auriez besoin d'ajouter du code à votre fichier .htaccess pour arrêter la liaison à chaud.

La section ci-dessous crée un shortcode que vous devrez ajouter au fichier de fonction de votre thème mais qui sera supprimé lors de la mise à jour du thème. La création d'un plug-in est donc plus intelligente si vous utilisez cette méthode.

function foobar_func(){
// Checks if the user is logged in  
if ( is_user_logged_in() ) {
    // Add the files link here

    // ID of an attachment found in the media section googling will show you how to find the PDF id if you don't know.
    $id = 9;
    // Display a link of the media file
    echo wp_get_attachment_link( $id, '' , false, false, 'My link text' );  
} else {
    // You can add a message if you wish to tell people to login to view or delete the line below to remove the text.
    echo 'Login to view file';
}
}
add_shortcode( 'foobar', 'foobar_func' );

Vous ajouteriez ensuite ce code dans votre éditeur de texte de page où vous souhaitez afficher le fichier. Notez que cela n'interrompt pas les liens directs vers le fichier, mais ne permet pas d'afficher un lien vers une personne non connectée.

[foobar]
0
Sam