The only major change is that I've hardcoded the copy of _j in global zsh installations to the default function directory /usr/local/share/zsh/site-functions/. This is because I'm unable to read zsh environmental variables (e.g. $fpath) from within a bash script.