У меня есть несколько неопубликованных постов на моем веб-сайте Wordpress, и я пытаюсь сделать его доступным для обычных пользователей (которые не вошли в систему) с помощью обычных пост-слагов ( site.com/post-here). Я понимаю, что это не лучшая практика, но для моей особой цели это нужно сделать.
Я попытался добавить следующий фрагмент кода в мой functions.phpфайл:
function enable_view_drafts() {
$role = get_role( 'subscriber' );
$role->add_cap( 'read_private_posts' );
$role->add_cap( 'edit_posts' );
}
add_action( 'after_setup_theme', 'enable_view_drafts');
Я также попробовал initкрюк вместо after_setup_theme. Неудачно.
Насколько я понимаю, изменения ролей сохраняются в базе данных, поэтому их нужно выполнить только один раз. Вот почему я использую after_setup_themeкрючок для вызова функции.
Но когда я пытаюсь получить доступ к странице как обычный пользователь, мне показывают страницу 404 вместо того, чтобы показывать содержание сообщения. Я также попытался загрузить URL предварительного просмотра ( site.com/?p=212&preview=true), но это тоже не сработало.
Это мои догадки:
- обычному пользователю не хватает
capsчитать черновик. - Тестирование и просмотр черновиков сообщений во внешнем интерфейсе невозможны ни для каких пользователей (включая администраторов).
Какие изменения я должен сделать, чтобы выполнить то, что я пытаюсь сделать? Если это невозможно, какие альтернативные решения вы предлагаете?
Примечание: я не ищу решения на основе плагинов.
