Как в WordPress присвоить категорию для 20 000 записей?
// получить слаг
$url_path = parse_url( $url, PHP_URL_PATH );
$slug = pathinfo( $url_path, PATHINFO_BASENAME );
//получит пост
 $args=array(
        'name' => $slug,
        'post_type' => $post_type,
        'posts_per_page' => 1
    );
    $post = get_posts( $args );
//получить ID
$post_ID = !empty($post->ID) ? $post->ID: false;
Зная ID дальше уже не тяжело.
Для 20к записей я бы обернул это дело в Ajax и прогнал бы массив с урлами через него. Правда оно не быстрое и от возможностей вашего сервера может занять больше 5 минут
если ссылки верные, то последний элемент ссылки это слаг записи, а по нему можно выудить id записи, далее через wp_set_object_terms можно подключить запись к категории.