Se eu definir uma página como privada, posso mostrar uma mensagem em vez de uma página 404 para usuários públicos?
Isso é um desafio, porque mostrar alguma coisa exigiria que a página não fosse privada.
É mais comum deixar a página pública, mas fazer com que ela produza saída condicional dependendo de se o usuário está logado ( is_user_logged_in()
) em ou outros critérios.
Eu estou usando isso:
if ( current_user_can('read_private_pages') )
Com essa condição, somente administradores e editores podem visualizar o conteúdo da página.
Eu concordo com Rarst. A menos que você use a saída condicional, você precisará descobrir como desfazer o que o Core faz com URLs para Postagens privadas. Caso contrário, um usuário que não estiver logado obterá o 404.
Ir com is_user_logged_in()
vai cuidar do que você precisa.