Через htaccess и прокси php, нагружает сервер приложений, но позволяет ограничивать доступы к файлам. пруф http://wordpress.stackexchange.com/questions/37144/how-to-protect-uploads-if-user-is-not-logged-in
Безопасность
Материалы на тему безопасности сайтов с WordPress
Пуленепробиваемая защита WordPress от брутфорса, удобно и с маскировкой
Пару недель назад наши сайты начали массово атаковать брутфорсом. Это начало вызывать перегрузку серверов и хостинг дал предупреждение о том что отключит сайты, если не сбавим нагрузку. И тут же прислал уведомление что обнаружил брутфорс-атаку и заблокировал страницу авторизации WordPress. Все бы хорошо, но такая защита усложняла входы на сайт. И ладно если только нам, […]
Не стоит использовать @import с CSS в WordPress
Кодекс WordPress не рекомендует использовать метод @import для CSS. По двум причинам: 1. Не будут работать плагины минификации типа WP Minify. Которые позволяют ускорять загрузку сайта. 2. Некоторые плагины кроссбраузерности не работают с этим методом. Например Respond.js в Bootstrap
Используйте get_post() вместо global $post
Часто разработчики WordPress используют объявление глобальной переменной $post для доступа к данным текущего поста. Но разработчики ядра уже давно отказались от этой идеи и почти везде заменили ее на $post = get_post();