Redireccionar errores 404 a la home en wordpress

Para realizar esto vamos a crear un tema hijo del tema que tenemos activado. Para ello en este caso tenemos la plantilla padre en: wp-content/themes/twentytwentytwo

Así que creamos una carpeta en: wp-content/themes/twentytwentytwo-hijo

Dentro de esta carpeta vamos a crear 3 ficheros:

style.css, functions.php, 404.php

En style.css ponemos lo siguiente:

/*
Theme Name: A Theme Hijo
Theme URI: http://loquesea.es
Version: 4.0
Description: Tema hijo de A theme
Author: Tu
Author URI: http://loquesea.es
Template: twentytwentytwo
*/
 
/*----------------- Cambios a partir de aquí -------------------------------*/

Lo importante aquí es el nombre que le damos al tema y sobre todo poner bien el nombre en template del tema padre.

En functions.php ponemos:

<?php
function my_theme_enqueue_styles() {
 $parent_style = 'parent-style'; // Estos son los estilos del tema padre recogidos por el tema hijo.
 wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
 wp_enqueue_style( 'child-style',
 get_stylesheet_directory_uri() . '/style.css',
 array( $parent_style ),
 wp_get_theme()->get('Version')
 );
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
?>

En este caso importamos los estilos del tema padre y después podemos añadir los nuestros después

En el fichero 404.php

<?php

header("HTTP/1.1 301 Moved Permanently");

header("Location: ".get_bloginfo('url'));

exit();

?>

Redireccionamos cualquier url no existente a la home con un 301 para preservar el SEO.

Por último seleccionamos el tema hijo como el tema activo.