Considere o seguinte:
Seu plugin é usado em uma rede wordpress, que usa prefixos de tabela diferentes para cada site. Seu plugin pode estar sendo executado simultaneamente em 836 sites diferentes, todos no mesmo banco de dados. wp_385677_liveshoutbox
é um nome de tabela perfeitamente razoável.
Seu plug-in é instalado por um usuário com algum conceito de segurança e alterou o prefixo da tabela para bloquear bots que tentam injetar select * from wp_users
no sistema. Mesmo se eles encontrarem uma nova vulnerabilidade, ela não funcionará.
Usar atalhos como nomes de tabelas codificados é uma boa maneira de colocar um produto em funcionamento, mas não é uma boa maneira de liberá-lo. em pouco tempo, o plug-in terá uma pilha de comentários "não funciona", no pior caso, você quebrará o site de outra pessoa.
Se eu tiver uma consulta complexa e não quiser lidar com a dificuldade de escrever, 'select foo from ' . $wpdb->prefix . '_mytable left join ' . $wpdb->prefix . '_mytablemeta on ' . $wpdb->prefix . '.ID = ' . $wpdb->prefix . '.meta_id ....
você pode usar substitutos. Por exemplo:
$query = 'select foo from %table% left join %meta% on %table%.ID = %meta%.meta_id ... ';
$change = array (
'%table%' => $wpdb->prefix . '_mytable',
'%meta%' => $wpdb->prefix . '_mytablemeta'
);
$sql = str_replace( array_keys( $change ), array_values( $change ), $query );
$results = $wpdb->get_results( $sql );
Wordpress está mudando constantemente. O que "funciona" hoje pode não funcionar amanhã. É por isso que existem funções de API. Os desenvolvedores do Wordpress garantirão que o comportamento da API pública seja consistente (ou depreciarão a função). Se você começar a usar chamadas de método internas porque é "mais rápido assim", ele geralmente voltará a morder você. Existem muito poucos atalhos verdadeiros no software - eles apenas transferem o trabalho necessário de agora para mais tarde e, como o cartão de crédito "mais tarde", geralmente custa mais.