1. Создать custom taxonomy "город" и заполнить терминами-городами.
2. Назначить эти термины-города вашему контенту.
3. Определять город автоматически, как говорит
redakoc очень и очень ненадежно, поэтому хоть автоматическое определение и нужно, лучше еще добавить выпадающий список со всеми терминами-городами и при выборе пользователем сохранять данные в куку.
4. Для определения автоматического не обязательно использовать GeoIP, есть еще вариат c GeoLocation API.
HTML5 GeoLocation APIGoogle Maps API
Ну и гуглите еще на эту тему.