By looking at wiki and other question, I understand $x$ is the string drive to first repeated state $q$ from starting state, and $y$ is the string that cycle back from $q$ to $q$, and $p$ is the number of state inside the automaton.
However, I still dont see why $|xy| ≤ p$ holds for general cases. If it $y$ only travel distinct states, we know all state on path of $x$ and $y$ are distinct (except $q$). Then path of $xy$ can be finished within $p$ edges.
But what if there are some "sub-cycles" inside the cycle of $y$ ? This doesn't violate the assumption of $q$ being first repeated state. But it is possible for $|xy|$ to exceed $p$, as now don't require distinct states.
I was thinking to remove those "sub-cycles", but this remove some sub-string of $y$, then cannot be used for pumping $y^n$.