get_permalink()
принимает в качестве аргумента объект $post
или post_id(т.е. можно передать id любого поста или любой объект $post
в принципе), и по умолчанию этот аргумент ссылается именно на глобальный $post
, поэтому это и работает вне цикла и без аргумента.