Você pode executar instruções SQL arbitrárias com wpdb :: query () , incluindo declarações de definição de dados, por exemplo,
function
create_index ()
{
global $wpdb ;
$sql = "CREATE INDEX my_index ON {$wpdb->prefix}my_table (my_column)" ;
$wpdb->query ($sql) ;
return ;
}
Observação: Como $wpdb->query()
pode executar SQL arbitrário , se a instrução passada a ele contiver QUALQUER entrada do usuário, você deverá use wpdb :: prepare () para proteger contra ataques de injeção de SQL.
Mas isso levanta a questão: como você criou suas tabelas específicas de plug-in? "Manualmente" ou programaticamente? Se programaticamente, você não usou $wpdb->query()
? Se você fez "manualmente", você deve criar as tabelas (e seus índices) na ativação do plugin.
Veja a excelente resposta para esta outra questão WPSE para saber como conectar-se à ativação do plug-in (e / ou desativação e desinstalação) para fazer coisas como criar tabelas privadas.