¿Cómo eliminar las páginas de autor?
Envié mi sitio a Google y ahora la página de autor está apareciendo en los resultados de búsqueda.
http://www.domain.com/author/myusername
¿Cómo puedo evitar que mi nombre de autor y el de otros aparezcan en los resultados de búsqueda?
Sería mejor deshabilitar completamente la ruta "/author/" ya que no es un blog sino un sitio de productos (solo tiene páginas).
Hice una búsqueda anteriormente y vi que hay plugins para hacer esto, pero preferiría no instalar un plugin (a veces no se actualizan) si hay otra manera, aunque lo haré si es necesario.
También busqué en el código fuente de las páginas y no vi ningún enlace a la página de autor.

La respuesta anterior es buena, pero si se redirige a la página de inicio, debería especificar un estado 301 y salir después.
add_action('template_redirect', 'my_custom_disable_author_page');
function my_custom_disable_author_page() {
global $wp_query;
if ( is_author() ) {
// Redirige a la página de inicio, establece el estado a 301 (redirección permanente).
// La función por defecto usa 302 (redirección temporal).
wp_redirect(get_option('home'), 301);
exit;
}
}
Documentación de wp_redirect() https://developer.wordpress.org/reference/functions/wp_redirect/

Actualmente uso el plugin Yoast SEO para eliminar las páginas de autor. Solo cambia la opción para no escanear/indexar esa taxonomía y estarás listo. No se requiere código.

Esta no es una buena solución para ocultar las páginas de autor. Si adivinas el login del autor, serás redirigido, pero si ingresas un slug de autor que no existe, obtendrás un error 404. El enfoque correcto debería redirigir o dar 404 en todos los casos.

Para que la solicitud de enlace corto /?author=1
se maneje de la misma manera, la prioridad de add_action
debe establecerse más baja que el valor predeterminado 10. Así se ejecutará antes del hook predeterminado redirect_canonical
y no será omitido por él. Sin esto, dicho enlace corto filtraría el nombre del autor a través de la redirección a /author/nombreautor
(que luego será redirigido a la página principal con el código que estoy comentando).

También puedes agregar la redirección directamente a la plantilla de autor. En tu tema de WordPress, edita el archivo author.php para redirigir a los usuarios a tu página de inicio. Si tu tema no tiene una plantilla para páginas de autor, crea un archivo llamado author.php.
author.php: (Usando la función header de PHP)
<?php
//Redirige las páginas de autor a la página de inicio
header("HTTP/1.1 301 Movido Permanentemente");
header("Location: /");
die(); // evita mayor procesamiento de PHP
//Eso es todo amigos
La parte del die()
es para evitar que cualquier persona que use un cliente que NO siga la cabecera de redirección vea el contenido de la página, ya que WordPress continuaría construyendo la página de autor original y enviaría su respuesta al cliente que la solicita.
ACTUALIZACIÓN: WordPress tiene un par de funciones integradas para manejar redirecciones: wp_redirect() y wp_safe_redirect(). wp_redirect() acepta una cadena como ubicación de redirección y un entero como tipo de redirección (302 es el predeterminado). wp_safe_redirect() es igual que wp_redirect() excepto que se asegura de que la ubicación de redirección se encuentre en una lista de hosts permitidos.
author.php: (Usando la función wp_safe_redirect de WordPress)
<?php
//Redirige las páginas de autor a la página de inicio con la función de redirección de WordPress
wp_safe_redirect( get_home_url(), 301 );
exit;
//Eso es todo amigos
Más información
- Jerarquía de plantillas de WordPress: https://developer.wordpress.org/themes/basics/template-hierarchy/
- Función header de PHP: https://www.php.net/manual/en/function.header.php
- Función wp_safe_redirect de WordPress: https://codex.wordpress.org/Function_Reference/wp_safe_redirect

Puedes deshabilitar el acceso a las páginas de autor añadiendo este fragmento de código a functions.php:
// Deshabilitar acceso a la página de autor
add_action('template_redirect', 'my_custom_disable_author_page');
function my_custom_disable_author_page() {
global $wp_query;
if ( is_author() ) {
$wp_query->set_404();
status_header(404);
// Redirigir a la página de inicio
// wp_redirect(get_option('home'));
}
}

Puedes deshabilitar el acceso a las páginas de autor si agregas el siguiente código en el archivo functions.php:
add_action('template_redirect', 'my_custom_disable_author_page');
function my_custom_disable_author_page() {
global $wp_query;
if ( is_author() ) {
$wp_query->set_404();
status_header(404);
}
}
