Ho diversi post non pubblicati nel mio sito Web Wordpress e sto cercando di renderlo accessibile agli utenti normali (che non hanno effettuato l'accesso) utilizzando i normali post slug ( site.com/post-here
). Capisco che potrebbe non essere la migliore pratica, ma per il mio scopo speciale, questo deve essere fatto.
Ho provato ad aggiungere il seguente frammento di codice nel mio functions.php
file:
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');
Ho anche provato ad init
agganciare invece di after_setup_theme
. Senza fortuna.
La mia comprensione è che le modifiche ai ruoli vengono salvate nel database, quindi è necessario solo una volta. Ecco perché sto usando after_setup_theme
hook per chiamare la funzione.
Ma quando provo ad accedere alla pagina come utente normale, mi viene mostrata una pagina 404 invece di mostrare il contenuto del post. Ho anche provato a caricare l'URL di anteprima ( site.com/?p=212&preview=true
) ma non ha funzionato neanche.
Queste sono le mie ipotesi:
- l'utente normale non ha abbastanza
caps
per leggere il post delle bozze. - non è possibile testare e visualizzare bozze di post sul front-end per nessun utente (inclusi gli amministratori).
Quali modifiche devo apportare per realizzare ciò che sto cercando di fare? Se non è possibile, quali soluzioni alternative suggerisci?
Nota: non sto cercando soluzioni basate su plug-in.