Recibí el mismo mensaje. Entiendo perfectamente lo que quieres decir. Pero también cambié mis clases a $wpdb. Fue más fácil que intentar configurar excepciones que no son tomadas en cuenta por el verificador de complementos.
Gracias de nuevo @thomas Zwirner
Eres genial, señor. Después de publicar esta pregunta, yo también comencé a usar $wpdb.
Este es mi primer complemento, por lo que estoy probando todo con mucho cuidado para que sea aceptado en el primer envío.
Tengo muchos más errores en la comprobación del complemento. Sé que también puedes ayudarme con esto.
ADVERTENCIA :WordPress.DB.DirectDatabaseQuery.DirectQuery
Mensaje:No se recomienda el uso de una llamada directa a la base de datos.
Llamada directa a la base de datos sin detección de almacenamiento en caché. Considere usar wp_cache_get() / wp_cache_set() o wp_cache_delete().
¿Debo implementar el almacenamiento en caché O si dejamos el almacenamiento en caché, habrá algún problema en la aprobación del complemento?
Comparte tu opinión. El almacenamiento en caché es un buen mecanismo, pero no estoy dispuesto a aplicarlo ahora en esta versión. Quiero que este complemento esté listo lo antes posible. Ahora mi motivación está disminuyendo lentamente.
Gracias
Rahul
¿Cómo es la línea a la que se refiere el mensaje?
Esta es una consulta para guardar los datos de un formulario.
if ($wpdb->get_var(
$wpdb->prepare("SELECT COUNT(*) FROM ".esc_sql($table_overlays)." WHERE streamid = %d", $streamid) )
) {
$result = $wpdb->update(
esc_sql($table_overlays),
array('overlay' => $overlay),
array('streamid' => $streamid),
array('%s'),
array('%d')
);
} else {
$result = $wpdb->query($wpdb->prepare("INSERT INTO ".esc_sql($table_overlays)." (streamid, overlay) VALUES (%d, %s)", $streamid, $overlay));
}
Supongo que el mensaje se refiere a la línea con el INSERT INTO
¿Declaración? Recomendaría reemplazar esto con https://developer.wordpress.org/reference/classes/wpdb/insert/.
Se refiere tanto a la línea de consulta
si ($wpdb->get_var( $wpdb->prepare(“SELECCIONAR CONTAR
DESDE “.esc_sql($table_overlays).” DONDE streamid = %d”, $streamid) )) {
$resultado = $wpdb->consulta($wpdb->prepare(“INSERTAR EN “.esc_sql($table_overlays).” (streamid, overlay) VALORES (%d, %s)”, $streamid, $overlay));
Si revisa el mensaje de error, dice algo sobre el almacenamiento en caché.
Llamada directa a la base de datos sin detección de almacenamiento en caché. Considere usar wp_cache_get() / wp_cache_set() o wp_cache_delete().
Lo intenté a continuación según el enlace de referencia, pero todavía tengo el mismo error.
$resultado = $wpdb->insert(esc_sql($table_overlays), matriz(‘streamid’ => $streamid, ‘overlay’ => $overlay), matriz(‘%d’, ‘%s’) );
También intenté eliminar esc_sql().