i did this with a digitech rp-1, i think the important thing is you need to do it via continous controller messages as opposed to program change messages,
the catch is you need to program a switch to act like an expression pedal, only that it just jumps between 0 and 127, omitting the value range inbetween
that can then be assigned inside the DAW to the parameter that switches the channels, should be pretty similar to automating it
the problem is not all midi controllers support this, and there is virtually no small midi foot controller around, they are all retardedly big with at least 6 switches or something
if size is an issue, i think MIAnn's solution is probably your best bet, you just take a regular footswitch, and let that thing convert it into control change messages