Cómo deshabilitar el acceso a las páginas de categoría
Quiero que mis categorías estén activas pero al mismo tiempo deseo que las páginas de categoría sean inaccesibles. ¿Es posible? Si es así, ¿cómo?
¿Por qué quiero hacer esto? (Posiblemente esto pueda ayudar)
Estoy trabajando en un sitio web de contenido generado por usuarios (UGC). Me han pedido cambiar /category/cat-name
a /cat-name
. También me han solicitado agregar otra página /cat-name/add
donde los usuarios puedan publicar solo en una categoría específica. No es posible agregar la página /cat-name/add
hasta que cree una página (no la página de categoría) /cat-name
. Si creo una página /cat-name
, entrará en conflicto con la página de categoría /cat-name
. Por eso pensé en deshabilitar la página de categoría /cat-name
y usar una página normal en /cat-name
para listar los posts de la categoría.

Puedes agregar algo como esto en tu archivo category.php.
if ( ! is_admin() ) {
wp_redirect( home_url() );
exit;
}
Esto redirigirá a los visitantes a la página de inicio del sitio, pero las páginas de categoría seguirán activas y accesibles solo para los administradores.

category.php es un archivo del tema, no un archivo principal. (asumiendo que a eso te refieres con "archivos de wp")

Necesitarás hacer al menos dos cosas (posiblemente más, no lo he pensado completamente), en su forma más simple:
Evitar que las listas de categorías generen enlaces:
Necesitarías emular
get_the_category_list()
y construir tu propia lista de categorías sin anclas, o probablemente podrías simplemente filtrar las etiquetas<a>
:add_filter( 'the_category', function ( $thelist, $sep, $parents ) { return strip_tags( $thelist, '<ul><li>' ); } );
Redirigir las URLs de categoría a otro lugar.
category.php
<?php wp_redirect( home_url() );
