wp-content/db.php: dov'è questo file?

9 set 2014, 20:42:58
Visualizzazioni: 18K
Voti: 1

In cima al file sorgente wp-includes/wp-db.php posso trovare il seguente commento:

/**
 * WordPress Database Access Abstraction Object
 *
 * È possibile sostituire questa classe con la propria
 * impostando la variabile globale $wpdb nel file wp-content/db.php
 * con la tua classe. La classe wpdb verrà comunque inclusa,
 * quindi puoi estenderla o semplicemente usare la tua.
 */

Mi chiedevo come funzionerebbe la sostituzione della classe wpdb con una classe diversa ma non riesco a trovare nessun file sotto wp-content/db.php. C'è un errore nella documentazione?

Grazie.

0
Tutte le risposte alla domanda 2
0

Devi creare il file da solo. Questo è uno dei file chiamati "drop-ins". Non sono distribuiti con il core di WordPress e il loro scopo è estendere le funzionalità, nel caso di db.php per sostituire il "driver" di database predefinito con un altro, ad esempio per comunicare con un database che non è MySQL.

Una struttura tipica dei file è

class altdb extends wpdb{

    public function __construct(){
        parent::__construct( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
    }

    function insert($table, $data, $format = null) {
        // codice per sovrascrivere insert
    }

    function query($sql) {
        // codice per sovrascrivere query
    }
}

global $wpdb;
$wpdb = new altdb();

Questo è un esempio relativamente semplice che sovrascrive solo insert e query ma utilizza ancora lo stesso database. Puoi renderlo molto più complesso di così.

9 set 2014 21:12:50
0

Dovresti creare il tuo file dp.php nella directory wp-content; se definisci $wpdb al suo interno, questo sostituirà l'oggetto predefinito $wpdb di WordPress.

Non è elencato nella lista delle Funzioni Pluggable (non è una grande sorpresa, dato che $wpdb è una classe, non una funzione), ma sembra concettualmente simile.

Inoltre, se non l'hai ancora letto, ti consiglio di consultare la documentazione della Classe WPDB.

9 set 2014 20:52:09