In dem geposteten Progrämmchen wird der Button überhaupt nicht abgefragt.
Weil er auch nicht mit nem Interrupt verbunden ist, kann der also auch nichts bewirken.
Der ist also völlig wirkungslos...

Frag einfach zyklisch (also in der loop() ) den Button auch mal ab:

buttonState=digitalRead(PUSH_BUTTON).

Dann läufts auch.
Zuverlässiger wirds, wenn du den Button noch etwas entprellst.

Allerdings: ein- und ausschalten per Tastendruck wird das Programm, so wie ich das sehe, nicht, sondern die LED's laufen nur, wenn der Button gedrückt _ist_.
Lässt du ihn los, gehn die wieder aus, weil sich dann buttonState wieder ändert.

Anmerkung: buttonState kannst du als bool deklarieren, da die nur true und false können muss- das spart Speicher.

Mal so aus Neugier: welcher Stümper hat das Buch geschrieben?