<?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
Copyright 2024 © Todos los derechos reservados | Tribu Remota
Menú
Muy interesante la clase, a ver si consigo crear bien el plugin
Esto es otro nivel…. por eso estamos en Tribu!!
Gracias Victor!!
Mas clases como estas, super facil!
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?
Con un 410 google te va a desindexar antes una url borrada o que de error que con el 404 habitual
Muchas gracias por responder, ya voy entendiendo cada vez más