global $wpdb
всегда будет возвращать null
- ибо в вашем текущем глобальном scope (вашего кастомного кода который никак не связан с WP) данной переменной нет. Чтобы она там появилась, вам нужно подгрузить минимально необходимую часть ядра WP:define( 'SHORTINIT', true );
require( '/path/to/wp-load.php' );