Please login for access. Login
<?php
/*
Plugin Name: Plugin de modificaciones wordpress
Description: Este plugin personalizado.
Version: 1.0
Author: Victor Misa
*/

/////////// Desactivar json

add_filter( 'wpseo_json_ld_output', '__return_false' );
add_filter( 'generate_schema_type', '__return_false' );

////////// Limpiar funciones inecesarias
function limpiar_wordpress() {
    // Remover los enlaces cortos de la cabecera
    remove_action('wp_head', 'wp_shortlink_wp_head', 10);

    // Remover los feeds de RSS de la cabecera
    remove_action('wp_head', 'feed_links', 2);
    remove_action('wp_head', 'feed_links_extra', 3);

    // Remover los enlaces de RSD y wlwmanifest
    remove_action('wp_head', 'rsd_link');
    remove_action('wp_head', 'wlwmanifest_link');

    // Remover la versión de WordPress de la cabecera
    remove_action('wp_head', 'wp_generator');

    // Remover los emojicons introducidos con WP 4.2
    remove_action('wp_head', 'print_emoji_detection_script', 7);
    remove_action('wp_print_styles', 'print_emoji_styles');

    // Deshabilitar el script de dashicons en el front-end para usuarios no administradores
    if (!is_user_logged_in()) {
        wp_deregister_style('dashicons');
    }

    // Remover la REST API links
    remove_action('wp_head', 'rest_output_link_wp_head');

    // Remover oEmbed
    remove_action('wp_head', 'wp_oembed_add_discovery_links');
    remove_action('wp_head', 'wp_oembed_add_host_js');
}

// Agregar la función al hook 'after_setup_theme' para que se ejecute después de que se haya cargado el tema
add_action('after_setup_theme', 'limpiar_wordpress');



///////////// Función para redirigir errores 404 a errores 410
function redirigir_404_a_410() {
    if (is_404()) {
        // Redirige a una página personalizada con el código de estado 410
        global $wp_query;
        $wp_query->set_410();
        status_header(410);
        include(get_template_directory() . '/error410.php'); // Cambia la ruta según la ubicación de tu página personalizada
        exit;
    }
}
add_action('template_redirect', 'redirigir_404_a_410');



// Deshabilitar el feed RSS para todas las páginas excepto la raíz del dominio
function custom_disable_feed_except_root() {
    // Obtener la URL solicitada
    $request_uri = $_SERVER['REQUEST_URI'];

    // Verificar si la solicitud es para el feed y no está en la raíz del dominio
    if (strpos($request_uri, '/feed/') !== false && $request_uri !== '/feed/') {
        // Mostrar un mensaje de error y establecer el status a 410 (Gone)
        status_header(410);
        echo 'El feed RSS está desactivado para esta URL.';
        exit();
    }
}
add_action('template_redirect', 'custom_disable_feed_except_root');



// Función para modificar el permalink de los posts y agregar '/p/'
function agregar_p_a_permalink($url, $post) {
    // Verificar si el enlace pertenece a un post
    if ($post && get_post_type($post) === 'post') {
        $url = home_url('/n/' . $post->post_name . '/');
    }
    return $url;
}
add_filter('post_link', 'agregar_p_a_permalink', 10, 2);

// Función para registrar una nueva estructura de reescritura
function agregar_rewrite_rule() {
    add_rewrite_rule('^n/([^/]*)/?$', 'index.php?name=$matches[1]', 'top');
}
add_action('init', 'agregar_rewrite_rule');

// No es necesario modificar o agregar la estructura de permalink globalmente, así que eliminamos agregar_structure_to_permalink_list

6 comentarios

  1. Oro puro y cada vez más fácil seguirle el paso. Gracias Víctor, esperando el volcado. No tengo claridad del porqué pasar del 404 al 410, ¿qué beneficios tiene, por qué se hace?

Deja una respuesta