wp-content/db.php: где находится этот файл?

9 сент. 2014 г., 20:42:58
Просмотры: 18K
Голосов: 1

В начале исходного файла wp-includes/wp-db.php можно найти следующий комментарий:

/**
 * Абстракция доступа к базе данных WordPress
 *
 * Вы можете заменить этот класс своим собственным,
 * установив глобальную переменную $wpdb в файле wp-content/db.php
 * на ваш класс. Класс wpdb все равно будет подключен,
 * поэтому вы можете его расширить или просто использовать свой собственный.

Мне интересно, как работает замена класса wpdb на другой класс, но я не могу найти файл wp-content/db.php. Это ошибка в документации?

Спасибо.

0
Все ответы на вопрос 2
0

Вам необходимо создать файл самостоятельно. Это один из файлов, называемых "drop-ins". Они не поставляются вместе с ядром WordPress, и их цель — расширить функциональность. В случае с db.php, он используется для замены стандартного "драйвера" базы данных на другой, например, для работы с БД, отличной от MySQL.

Типичная структура таких файлов выглядит следующим образом:

class altdb extends wpdb{

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

    function insert($table, $data, $format = null) {
        // код для переопределения метода insert
    }

    function query($sql) {
        // код для переопределения метода query
    }
}

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

Это относительно простой пример, который переопределяет только методы insert и query, но продолжает использовать ту же базу данных. Вы можете реализовать гораздо более сложную логику.

9 сент. 2014 г. 21:12:50
0

Вы можете создать свой собственный файл dp.php в директории wp-content; если вы определите $wpdb в этом файле, он заменит стандартный объект $wpdb WordPress.

Это не указано в списке Подключаемых функций (что неудивительно, так как $wpdb — это класс, а не функция), но концепция похожа.

Также, если вы еще не читали, я рекомендую ознакомиться с документацией по классу WPDB.

9 сент. 2014 г. 20:52:09