У меня есть несколько неопубликованных постов на моем веб-сайте 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
читать черновик. - Тестирование и просмотр черновиков сообщений во внешнем интерфейсе невозможны ни для каких пользователей (включая администраторов).
Какие изменения я должен сделать, чтобы выполнить то, что я пытаюсь сделать? Если это невозможно, какие альтернативные решения вы предлагаете?
Примечание: я не ищу решения на основе плагинов.