Eu amo admin-ajax.php. Mas eu odeio ter que localizar para apontar scripts de front-end para ele e gostaria que houvesse um arquivo equivalente e fácil de encontrar para os temas. (Também me incomoda ver solicitações de front-end passarem por "/ wp-admin /". Nenhuma razão prática, apenas parece IMO feia.)
Então, eu simplesmente copiei admin-ajax.php no diretório raiz em "/ajax.php", ajustei os caminhos de inclusão e removi a definição constante WP_ADMIN. Parece funcionar como gangbusters (agora posso direcionar todos os meus pedidos de AJAX de frontend para /ajax.php! E ainda posso usar os ganchos wp_ajax normais nos meus plugins!).
Mas isso é seguro? O que pode dar errado? Como isso não está embutido no núcleo, presumo que exista uma boa razão para isso. Mas, olhando o código, não vejo nenhum problema imediato.
Você é inteligente - me diga se essa abordagem é louca. Ou se houver um método mais simples que estou ignorando.