Considera lo siguiente:
Su complemento se utiliza en una red de WordPress, que utiliza diferentes prefijos de tabla para cada sitio. Su complemento podría estar ejecutándose simultáneamente en 836 sitios diferentes, todos en la misma base de datos. wp_385677_liveshoutbox
es un nombre de tabla perfectamente razonable.
Su complemento es instalado por un usuario que tiene algún concepto de seguridad y ha cambiado el prefijo de la tabla para bloquear los bots que intentan inyectarse select * from wp_users
en el sistema. Incluso si encuentran una nueva vulnerabilidad, no funcionará.
Tomar atajos como nombres de tablas de codificación fija es una buena manera de poner en funcionamiento un producto, pero no es una buena forma de lanzarlo. en muy poco tiempo, el complemento tendrá un montón de comentarios de "no funciona", en el peor de los casos, romperá el sitio de otra persona.
Si tengo una consulta compleja y no quiero lidiar con el dolor de escribir 'select foo from ' . $wpdb->prefix . '_mytable left join ' . $wpdb->prefix . '_mytablemeta on ' . $wpdb->prefix . '.ID = ' . $wpdb->prefix . '.meta_id ....
, puede usar reemplazos. Por ejemplo:
$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á cambiando constantemente. Lo que "funciona" hoy puede no funcionar mañana. Por eso hay funciones API. Los desarrolladores de Wordpress se asegurarán de que el comportamiento de la API pública sea coherente (o depreciarán la función). Si comienzas a usar llamadas a métodos internos porque es "más rápido de esa manera", generalmente volverá a morderte. Hay muy pocos atajos verdaderos en el software: simplemente mueven el trabajo requerido de ahora en adelante y, al igual que su tarjeta de crédito "más tarde", generalmente cuesta más.