¿Cómo elimino páginas no deseadas como archivos, búsqueda, etc.?

15 abr 2013, 20:02:31
Vistas: 35.1K
Votos: 9

Por defecto, WordPress genera una serie de páginas que no quiero ni necesito - archivos, autor, blog, mensuales, entradas recientes, categorías, comentarios, archivos adjuntos, taxonomías, búsqueda, resultados de búsqueda y probablemente algunas otras que me he perdido.

La mayoría de las veces estoy construyendo sitios web tipo folleto que solo necesitan algunas páginas bastante estáticas. ¿Cómo me deshago de todas las otras páginas? ¿Existe algún plugin que haga esto? ¿Tengo que configurar una docena de redirecciones en el .htaccess? He intentado buscar, pero todo lo que encuentro es cómo ocultar partes de una página o personalizar el mapa del sitio para ocultarlas de las búsquedas. Pero no quiero esas páginas en absoluto, así que incluso ingresando la URL directa no debería funcionar.

0
Todas las respuestas a la pregunta 5
0

Podrías redirigir cualquier cosa que no sea una página o el panel de administración a la página de inicio mediante la acción parse_query:

function wpa_parse_query( $query ){
    if( ! is_admin() && ! $query->is_page() ) {
        wp_redirect( home_url() );
        exit;
    }
}
add_action( 'parse_query', 'wpa_parse_query' );

Si no es una pantalla de administración o una consulta para una página, redirigirá. Puedes ver todos los tipos de páginas que esto eliminará en la página de Etiquetas Condicionales en el Codex.

8 may 2013 17:30:12
0

El plugin de WordPress SEO de Joost de Valk es capaz de desactivar la mayoría, si no todas, las archivaciones que mencionas:

Descripción de la imagen aquí

15 abr 2013 20:18:48
0

Puedes usar otro pequeño script, sin necesidad de añadir ningún plugin. Hay un post aquí y el código para añadir en el index.php de tu tema es este:

if(is_archive()) {
    // forzar 404
    $wp_query->set_404();
    status_header( 404 );
    nocache_headers();
    include("404.php");
    die;
}

Espero que te sea útil.

8 sept 2015 14:34:19
2

Para cualquiera que se lo pregunte, terminé usando redirecciones 301 en .htaccess.

# Redirigir páginas inútiles
Options +FollowSymlinks
RewriteEngine on
RedirectMatch 301 ^/portfolio/.*$ /gallery/
RedirectMatch 301 ^/author/.*$ /
RedirectMatch 301 ^/category/.*$ /
RedirectMatch 301 ^/tag/.*$ /
RedirectMatch 301 ^/20.*$ /

El archivo de publicaciones del blog ^/20.*$ no es ideal, pero tendrá que servir por ahora. Tampoco sé qué otras páginas podrían habérseme pasado.

8 may 2013 15:34:33
Comentarios

Ten en cuenta que .*$ es inútil y ralentiza tu expresión regular. Por lo tanto, solo ^/portfolio/ es suficiente para capturar una página que comienza con portfolio. También me pregunto si no deberías devolver un 404 en su lugar.

Alexis Wilke Alexis Wilke
7 mar 2018 19:33:29

En cuanto al último, al menos podrías verificar que hay 4 dígitos como en: ^/20[0-9][0-9]. Así que ahora debes tener desde 2000 hasta 2099.

Alexis Wilke Alexis Wilke
7 mar 2018 19:35:25
0

También se puede lograr usando el hook template_redirect.

Puedes verificar cada tipo de páginas de archivo, o "desactivarlas" por completo.

  • Devolver un error 404 o redirigir a otra página, prefiero el enfoque del 404-

En functions.php :

/* Deshabilitar páginas de archivo */
add_action('template_redirect', 'my_disable_archives_function');

function my_disable_archives_function()
{
  /* Ejemplos de verificaciones condicionales:
      is_category() 
      is_tag()
      is_date()
      is_author()
      is_tax()
      is_search() ... */

    // Devolver un 404 para todos los tipos de archivo, excepto el archivo de my_custom_post_type.
    $post_types = array('my_custom_post_type');

  if ( (is_archive() && !is_post_type_archive( $post_types )) )
  {
      global $wp_query;
      $wp_query->set_404();
      status_header(404);
  }
}
27 nov 2018 11:43:11