スクリプトで WordPress の DB にアクセスしたい

WordPress の DB にスクリプトからアクセスしたい場合、単純に MySQL にアクセスして処理すればいいのですが、何らかの理由で WordPress の関数を使いたい場合(画像の投稿をスクリプトで行う等)は、

require_once('wp-blog-header.php');

でOKなのですが、一部のメソッドは直接そのメソッドが記述されたソースをインクルードする必要があります。

例えば、カテゴリ登録するための wp_insert_category() を使いたい場合、

require_once('/wp-admin/includes/taxonomy.php');

とする必要があります。/wp-admin/includes/にクラスがあるので必要なものを探しだして、インクルードします。

また、wp-blog-header.phpをインクルードするということは、例えば、HTTPSで必ずアクセスさせたり、ログインユーザのみに見せるといったようなWebの制限をfunction.phpなどに入れて、サイト全体に制限かけた場合、影響を受けます。

そこで、そういった制限を入れた場合は、その制限処理に、

if ( ! preg_match( '/^(script.php|hogehoge.*.php)/', basename( $_SERVER['SCRIPT_NAME'] ) ) ){
 // 制限処理
}

のように除外したいスクリプト名(上記の場合、「script.php」か「hogehoge.*.php」にマッチするスクリプト)を指定して、処理から除外する必要があります。

これをしない場合、スクリプトを実行すると、制限に引っかかり、処理が止まります。