giok77

giok77

giok77

slot bonus new member

rumah88

Cómo evitar que WordPress elimine una publicación

A primera vista, parece que no hay ganchos o filtros en WordPress para evitar que se elimine una publicación/página. Sin embargo, podrá hacerlo filtrando user_has_cap (abreviado de usuario tiene capacidad). este puede ser un filtro muy poderoso y podrás usarlo para bloquear prácticamente cualquier cosa en WordPress. estos son 3 parametros:

Cuando se elimina una publicación, $argumentos está a punto de formar ('delete_post', $user_id, $post_id)Las capacidades requeridas para permitir la eliminación son Sostuvo dentro de la matriz $caps y puede variar según el tipo de publicación que se elimine (por ejemplo, 'delete_published_posts'). $mayúsculas coincide con un elemento en $allcaps. Para evitar que se elimine la publicación, todo lo que queremos hacer es cambiar $allcaps configurando uno de todos los valores enumerados en $caps a false (por ejemplo, $ en mayúsculas[$caps[0]]= falso).

Como ejemploel siguiente código evita la última publicación paginas de un sitio web eliminado.

  • $allcaps (matriz de todas las mayúsculas, cada una configurada como verdadera o falsa)
  • $mayúsculas( Ana conjunto de capacidades requeridas por la operación actual)
  • $args (una matriz de argumentos asociados con esta operación).

add_filter ('user_has_cap', 'athemeart_prevent_last_page_deletion', 10, 3);
 
function athemeart_prevent_last_page_deletion ($allcaps, $caps, $args) {
    global $wpdb;
    if (isset($args[0]) && isset($args[2]) && $args[0] == 'delete_post') {
        $post = get_post ($args[2]);
        if ($post->post_status == 'publish' && $post->post_type == 'page') {
            $query = "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_status="publish" AND post_type = %s";
            $num_posts = $wpdb->get_var ($wpdb->prepare ($query, $post->post_type));
            if ($num_posts < 2)
                $allcaps[$caps[0]] = false;
        }
    }
    return $allcaps;
}

Espero que encuentres útil este artículo.

Si tiene alguna pregunta, pregúntenos en la sección de comentarios a continuación.

¡Inspíranos con tu amor!

FacebookgorjeoReddit

Artículo Recomendado:  El viaje del cliente B2B se está poniendo en una pista digital

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir