Без скрытых полей, пожалуйста. Можешь использовать «не сразу» редактируемое поле. Т.е. на клиенте защитить от редактирования, пока не сделают доп. клик. Естественно, первоначально генерировать дефолтное значение тоже на клиенте.
А вообще я не люблю излишнюю автоматизацию. Поэтому мой вариант автогенерации, если он вообще есть, – что-то вроде post-<id> (post-100500). Возможно, такое отношение связано с тем, что я в основном использую CSM'ки, в которых слаг указывается в первую очередь (как имя файла при его создании из какой-то оболочки). Для автогенерации можно оставить поле пустым, но ты ничего круче post-<id> скорее всего не получишь, т.к. доп. полей вроде заголовка в форме создания обычно нет.