Como ocultar postagens protegidas por senha do WordPress Loop

O WordPress permite que você crie posts protegidos por senha. Recentemente, um de nossos leitores perguntou se era possível ocultar postagens protegidas por senha do site. Por padrão, o WordPress esconde o conteúdo de uma postagem protegida por senha, mas ainda mostra o título da publicação com o prefixo ‘Protegido’. Neste artigo, mostraremos como ocultar mensagens protegidas por senha do loop do WordPress.

Por que ocultar postagens protegidas por senha no WordPress?

Por padrão, o WordPress exibe a postagem protegida por senha com seu título e um prefixo “protegido”. Os usuários precisarão inserir a senha para visualizar o conteúdo da postagem.

Posts protegidos por senha exibidos na página inicial e em widgets

Este título de publicação está visível na página inicial, arquivos, widget de postagens recentes, etc. Se você quiser manter algum conteúdo completamente privado, isso não é um ideal.

Não só os usuários que não possuem senha podem ver o título da postagem, mas também podem tentar inserir senhas. Como todos sabemos, as senhas podem ser quebradas.

Dito isto, vamos dar uma olhada em como ocultar suas postagens protegidas por senha do loop do WordPress para que outros usuários não possam vê-los.

Ocultando mensagens protegidas por senha no WordPress

Basta adicionar este código ao arquivo functions.php do seu tema ou a um plugin específico do site.

função wpb_password_post_filter ($ where = '') {
     se (! is_single () &&! is_admin ()) {
         $ where. = "AND post_password = ''";
     }
     retornar $ onde;
 }
 add_filter ('posts_where', 'wpb_password_post_filter'); 

Este código simplesmente modifica a consulta enviada ao WordPress usando o posts_where filtro. Ele pede ao WordPress que procure todas as postagens que não possuem uma senha.

Visite seu site e você verá que as postagens protegidas por senha não são mais visíveis na página inicial, arquivos ou em widgets como publicações recentes.

Antes e depois de ocultar mensagens protegidas no WordPress

Você ainda pode visitar a publicação acessando-a através de um URL direto para a publicação.

O exemplo acima, esconde mensagens protegidas por senha de todos os usuários. E se você executasse um site WordPress multi-autor e queria que as postagens protegidas fossem visíveis por usuários com a capacidade de editar postagens privadas?

Basta modificar o código acima com outra tag condicional, como este:

função wpb_password_post_filter ($ where = '') {
    se (! is_single () &&! current_user_can ('edit_private_posts') &&! is_admin ()) {
         $ where. = "AND post_password = ''";
     }
     retornar $ onde;
 }
 add_filter ('posts_where', 'wpb_password_post_filter'); 

Neste exemplo, verificamos se um usuário não pode editar as postagens protegidas por senha, então mostre apenas as postagens que não possuem senha. Ao fazê-lo, todos os usuários com funções de usuário do administrador e editor verão as postagens protegidas por senha na parte frontal do seu site.

Esperamos que este artigo o ajude a ocultar postagens protegidas por senha do loop do WordPress em seu site