2009-06-16 16 views
7

En una nueva instalación de WordPress 2.8, tengo algunas publicaciones asignadas a la categoría Foo que anteriormente eran públicas pero que desde entonces se han hecho privadas. Cuando estoy conectado a WordPress (como administrador) y también navego por la página de categoría Foo en una pestaña diferente en el mismo navegador, puedo ver las publicaciones privadas en la página de categoría, con los títulos de entrada prefijados con la palabra " PRIVADO: ".WordPress muestra publicaciones privadas a los usuarios que han iniciado sesión: ¿cómo desactivar esta funcionalidad?

Ahora, nada está "roto" sobre esto: las publicaciones están ocultas correctamente para los usuarios que no han iniciado sesión. Pero no quiero que los usuarios que hayan iniciado sesión vean las publicaciones privadas en el sitio en vivo, porque francamente es molesto, no útil.

¿Qué debo hacer al WP Loop en la página de archivo de categorías o al archivo de funciones para desactivar esta posibilidad no deseada de ver publicaciones privadas en el sitio?

+0

¿Los administradores no autorizados también los ven? – jitter

+0

¿Es porque su usuario administrador tiene un poco más de permisos que los usuarios normales? ¿Has intentado crear un usuario estándar de "Suscriptor" y ver si tienes el mismo problema? – Amadiere

+0

Solo hay dos usuarios en el sistema, ambos administradores. No quiero ver publicaciones privadas en este blog (en el frente, quiero decir, ya sabes, navegar por el sitio como un usuario) mientras estoy conectado. Por lo tanto, crear un usuario "suscriptor" no ayudaría en este asunto. Todavía debe iniciar sesión como administrador para realizar el mantenimiento del sitio backend y tal. – Asparagirl

Respuesta

18

La forma truco para hacer lo que quiere es poner esta línea de código en la parte superior de su bucle (después de la the_post() parte:

if(get_post_status()=='private') continue; 

Ésta es la manera truco porque su WordPress todavía está cargando esa publicación desde la base de datos y contabilizándola para contabilizar los conteos, etc., pero salteándola cuando vaya a mostrarla. Si buscó una frase que estaba solo en publicaciones privadas, obtendría una página en blanco sin ningún error, por ejemplo.

La forma correcta de hacerlo es agregar un filtro que modifique el SQL utilizado para generar t la lista de publicaciones. La parte difícil es no filtrarlo si estás en la sección de administración, de lo contrario nunca volverás a ver tus publicaciones privadas. El mejor lugar para este filtro está en el archivo functions.php de su tema. Esto es lo que debe poner ahí:

add_filter('posts_where', 'no_privates'); 
function no_privates($where) { 
    if(is_admin()) return $where; 

    global $wpdb; 
    return " $where AND {$wpdb->posts}.post_status != 'private' "; 
} 
+0

Me encontré con el mismo problema para mi wordpress. Su solución parece aplicable. ¿Puedes decirnos qué implica el archivo php? y, donde debería add_filter ('posts_where', 'no_privates'); ¿ser agregado? – Elaine

+0

¡Gracias por la respuesta! Resolvió mi problema y no pudo encontrarlo en ningún otro lado en la web. –

+0

+ Elaine El archivo php es functions.php y se encuentra en su directorio de temas. Puede agregar este código casi en cualquier lugar en functions.php, como directamente después de

0

Esta no es una solución directa a la pregunta exacta, pero una forma de ocultar esas publicaciones es asignarlas a una categoría especial, luego ocultar esa categoría para que no se muestre en el ciclo. Para excluir los mensajes de una categoría dada de la pantalla, dentro del bucle (inmediatamente después de la instrucción, mientras que()) utiliza esta línea de código:

<?php if (in_category('3')) continue; ?> 

En este ejemplo, 3 es la categoría ID de la categoría de excluir, y el código simplemente le dice a WordPress que continúe con la próxima publicación sin mostrar esta.

1

Así que si no hay nadie para ver estos mensajes privados, incluyendo los administradores, por qué no acaba de establecer su estado a no publicado o proyecto?

+0

Una razón es que tienes muchos usuarios y que están configurando las publicaciones como privadas, aunque como dijiste que no publicadas o borradores serían una mejor solución. –

Cuestiones relacionadas