Mam kilka niepublikowanych postów na mojej stronie Wordpress i staram się, aby były one dostępne dla zwykłych użytkowników (którzy nie są zalogowani) przy użyciu normalnych post slugs ( site.com/post-here
). Rozumiem, że może nie być to najlepsza praktyka, ale w moim specjalnym celu należy to zrobić.
Próbowałem dodać następujący fragment kodu do mojego functions.php
pliku:
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');
Próbowałem też init
zamiast haka after_setup_theme
. Brak szczęścia.
Rozumiem, że zmiany ról są zapisywane w bazie danych, więc trzeba to zrobić tylko raz. Dlatego używam after_setup_theme
hooka do wywołania funkcji.
Ale kiedy próbuję uzyskać dostęp do strony jako zwykły użytkownik, wyświetla się strona 404 zamiast treści postu. Próbowałem również załadować podgląd URL ( site.com/?p=212&preview=true
), ale to też nie działało.
Oto moje domysły:
- zwykły użytkownik nie ma wystarczającej ilości,
caps
aby przeczytać szkic posta. - testowanie i przeglądanie wersji roboczych postów na interfejsie nie jest możliwe dla żadnego użytkownika (w tym administratorów).
Jakie zmiany muszę wprowadzić, aby osiągnąć to, co próbuję zrobić? Jeśli nie jest to możliwe, jakie alternatywne rozwiązania sugerujesz?
Uwaga: nie szukam rozwiązań opartych na wtyczkach.