Icono ayuda

¿Necesitas ayuda?

Contactar con asesor por WhatsApp

Saltar al contenido

Ariapsa - Diseño de páginas web México

¿Cómo ocultar post (entradas) protegidos por contraseña en WordPress?

Si tienes entradas protegidas por contraseña pero quieres ocultarlas a los usuarios de la página principal del sitio, en la del Blog, en los widgets del sidebar y los archivos de WordPress puedes usar el siguiente código:

<div style="text-align: center; margin: 20px 0;">
                        <a href="https://ariapsa.com/mb" target="_blank">
                            <img src="https://ariapsa.com/wp-content/uploads/2024/08/Marca-blanca-Diseno-de-paginas-web-mexico-ariapsa.jpg" alt="Banner" style="max-width: 100%; height: auto;">
                        </a>
                       </div>
// Función para ocultar posts protegidos por contraseña en los listados específicos
function exclude_protected($where) {
global $wpdb;
return $where .= " AND {$wpdb->posts}.post_password = '' ";
}
// Función para añadir el filtro a las consultas principales
function exclude_protected_action($query) {
// Verificar que no estamos en la administración y la consulta es principal
if (!is_admin() && $query->is_main_query()) {
// Excluir en archivos, categorías, etiquetas, página de entradas, página estática y sección de blog
if (is_archive() || is_category() || is_tag() || is_home() || is_front_page() || is_page()) {
add_filter('posts_where', 'exclude_protected');
}
// No excluir en búsquedas
// Permitir acceso directo mediante URL
// Los posts y páginas protegidos por contraseña serán accesibles directamente mediante URL
}
}
// Acción para añadir el filtro en el momento adecuado
add_action('pre_get_posts', 'exclude_protected_action');

Para que tus usuarios encuentren el contenido será necesario enviar el link de la pagina o entrada.

×
Ocultar post (entradas) protegidas excepto en determinadas categorías
¿Necesitas que en determinadas categorías se muestre las entradas protegidas por contraseña?

Explicación del código:

  1. Función exclude_protected: Añade una condición a la consulta SQL para excluir los posts que tienen una contraseña establecida (post_password no está vacío).
  2. Función exclude_protected_action: Verifica que no se está ejecutando en el área de administración y que la consulta es la principal (is_main_query()).
    • Excluye los posts protegidos por contraseña en archivos (is_archive()), categorías (is_category()), etiquetas (is_tag()), la página de inicio (is_home()), una página estática (is_front_page()), páginas individuales (is_page()) y entradas individuales (is_single()).
    • No excluye los posts protegidos en las búsquedas (is_search()).
    • Permite que los posts y páginas protegidos sean accesibles directamente mediante la URL.
  3. Acción pre_get_posts: Asegura que el filtro se aplica en el momento adecuado, antes de que WordPress obtenga los posts.

 

Ariapsa - Diseño de páginas web México
×

Iniciar Sesión

El registro de usuarios no está permitido.