Error 404 al usar el paginador de entradas de wordpress

En uno de mis proyectos actuales, se me presentó un inconveniente que me estaba poniendo los pelos de punta! En un sitio web un poco complejo en su estructura, simplemente los paginadores de los posts publicados en determinadas categorías no funcionaban, llevando a un error 404, e impidiendo que los visitantes puedan revisar entradas anteriores.

Aparte de eso (y es algo que no me había dado cuenta hasta ahora) es que si en el administrador de wordpress, seleccionamos las entradas de determinada categóría, no se visualizaba ninguna. Inicialmente pensé en un bug de wordpress, pero al investigar un poco (más bien bastante), encontré que el problema se daba por la creación de «Custom Types» dentro de las entradas. Este es nuestro caso, ya que tengo varios tipos distintos de entradas, ya que así fué requerido en la estructura del sitio.

La solución resultó bastante sencilla. Hay que agregar este código al final del archivo functions.php

 

function category_set_post_types( $query ){
    if( $query->is_category ):
        $query->set( 'post_type', 'any' );
    endif;
    return $query;
}
add_action( 'pre_get_posts', 'category_set_post_types' );

Que hará que las entradas normales se mapeen correctamente dentro de las categorías, y así eliminaremos los problemas que teníamos con los paginadores.

Espero les sea de utilidad.