Как закрыть доступ по прямой ссылке на файл в wordpress?

В WordPress можно закрыть доступ к файлам, чтобы предотвратить прямой доступ к ним через прямую ссылку. Для этого можно использовать несколько подходов:

1. Использование .htaccess: создайте или откройте файл .htaccess в корневой папке вашего сайта WordPress и добавьте следующий код:

<FilesMatch ".(pdf|docx|txt)$">
    Order Allow,Deny
    Deny from all
</FilesMatch>

Этот код запретит доступ к файлам, имеющим расширения .pdf, .docx и .txt. Вы можете добавить или удалить расширения файлов, требующих запрета доступа, по своему усмотрению.

2. Использование функции wp_die(): можно использовать эту функцию для отображения сообщения об ошибке, когда пользователь пытается получить доступ к файлу напрямую. Добавьте следующий код в файл functions.php вашей темы:

function prevent_direct_access() {
    global $post;
    if ( is_single() && in_array( $post->post_mime_type, array( 'pdf', 'docx', 'txt' ) ) ) {
        wp_die( 'Доступ к этому файлу запрещен.' );
    }
}
add_action( 'template_redirect', 'prevent_direct_access' );

Здесь мы проверяем, является ли текущая страница отдельным сообщением (постом) и файлы соответствуют необходимым типам MIME (например, .pdf, .docx и .txt). Если условие выполняется, функция wp_die() выдаст сообщение об ошибке с указанным текстом.

3. Использование плагина: также существуют плагины, которые обеспечивают более продвинутые методы защиты файлов в WordPress. Некоторые из них позволяют настроить разрешения доступа и управлять доступом к файлам на основе различных критериев, таких как роли пользователей или собственные правила. Примерами таких плагинов являются "Prevent Direct Access" и "WP Private Content Plus".

Выбор конкретного подхода зависит от ваших требований и уровня защиты, которую вы хотите обеспечить. Все они позволяют ограничить прямой доступ к файлам, но имейте в виду, что полностью защитить файлы на вашем сайте невозможно - пользователи всегда могут скопировать файлы или поделиться ссылками.