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