質問: 私はHTML,php,mySQLを使って、例えばゴルフコンペの参加者がエントリーでき、かつ誰でも参加者リストが見れるHPを1年前に完成し現在会員から重宝して使って頂いています。 ### 発生している問題 現在、同じ機能で、初めて**WordPressバージョン**を作ろうと2か月ほど苦闘中です。 具体的にはCocoonをテーマにいくつかのPlugInを導入し、いわゆる静的なHPは一応できましたが、肝心のDBを使って動的なHPを作る参考書がアマゾンにも見当たりませんでした。 ### 試したこと ネットで見つけた現時点でベストの情報が下記です。 [WordPressとデータベースの基礎知識] しかし、これではまだ実際に作れないので、もっと詳しいものが欲しいと探しています。 **WordPressでmySQLを使う正しい方法を知る良い参考書か、なければネットの記事を教えて頂ければ、とてもありがたいです。**
回答: とりあえずWordPressでSQLを走らせたいときは$wpdb グローバル変数の$wpdbにはWordPressの DBのテーブルの名前とかがプロパティで入ってるので それを使ってSQL文を作る pdoのprepareみたいなもんが$wpdbにもあるけど ほぼsprintfしてるだけみたいなもんで DBの構造とか値の型を参照してなんかしてくれるわけじゃない 一応SQLインジェクションの対策の処理をやってくれるんで 基本は$wpdb->prepareでSQL文を作って各種メソッドに渡すのがお作法 ``` $wpdb->query($wpdb->prepare('...%s..%d',$.,$.)); ``` meta_queryとかtax_queryとかちょっと面倒な奴は SQL文を生成するメソッドが各クラスにあったりするので活用していこう あと、 $wpdbではDROPとかCREATEとかALTERとかはできないので テーブルを追加したり構造を変えたりするときは wp-admin/includes/upgrade.phpをincludeして dbDeltaでSQLを走らせる そんな感じ