下記のSQLを軽くしたいです。
読み込みが遅すぎて、結果が表示されません。
###目的
高速に表示されるようにしたいです。
Advance custom fieldを使用して、その値などを取得しています。
//一覧情報取得 $result = $mydb->get_results(" SELECT post_title, id, post_name, m1.meta_value AS 'name_furigana', m2.meta_value AS 'photo_official', m3.meta_value AS 'position', m4.meta_value AS 'association', m5.meta_value AS 'number', m6.meta_value AS 'place', m7.meta_value AS 'graduate', m8.meta_value AS 'hobby', m9.meta_value AS 'motto', m10.meta_value AS 'greeting', m11.meta_value AS 'photo_working', m12.meta_value AS 'greeting_accident', m13.meta_value AS 'greeting_criminal' FROM $mydb->posts INNER JOIN $mydb->postmeta AS m1 ON m1.post_id = $mydb->posts.ID /* テーブルを結合-カスタムフィールド */ INNER JOIN $mydb->postmeta AS m2 ON m2.post_id = $mydb->posts.ID /* テーブルを結合-カスタムフィールド */ INNER JOIN $mydb->postmeta AS m3 ON m3.post_id = $mydb->posts.ID /* テーブルを結合-カスタムフィールド */ INNER JOIN $mydb->postmeta AS m4 ON m4.post_id = $mydb->posts.ID /* テーブルを結合-カスタムフィールド */ INNER JOIN $mydb->postmeta AS m5 ON m5.post_id = $mydb->posts.ID /* テーブルを結合-カスタムフィールド */ INNER JOIN $mydb->postmeta AS m6 ON m6.post_id = $mydb->posts.ID /* テーブルを結合-カスタムフィールド */ INNER JOIN $mydb->postmeta AS m7 ON m7.post_id = $mydb->posts.ID /* テーブルを結合-カスタムフィールド */ INNER JOIN $mydb->postmeta AS m8 ON m8.post_id = $mydb->posts.ID /* テーブルを結合-カスタムフィールド */ INNER JOIN $mydb->postmeta AS m9 ON m9.post_id = $mydb->posts.ID /* テーブルを結合-カスタムフィールド */ INNER JOIN $mydb->postmeta AS m10 ON m10.post_id = $mydb->posts.ID /* テーブルを結合-カスタムフィールド */ INNER JOIN $mydb->postmeta AS m11 ON m11.post_id = $mydb->posts.ID /* テーブルを結合-カスタムフィールド */ INNER JOIN $mydb->postmeta AS m12 ON m12.post_id = $mydb->posts.ID /* テーブルを結合-カスタムフィールド */ INNER JOIN $mydb->postmeta AS m13 ON m13.post_id = $mydb->posts.ID /* テーブルを結合-カスタムフィールド */ WHERE post_type = 'bio' AND post_status = 'publish' AND m1.meta_key = 'name_furigana' AND m2.meta_key = 'photo_official' AND m3.meta_key = 'position' AND m4.meta_key = 'association' AND m5.meta_key = 'number' AND m6.meta_key = 'place' AND m7.meta_key = 'graduate' AND m8.meta_key = 'hobby' AND m9.meta_key = 'motto' AND m10.meta_key = 'greeting' AND m11.meta_key = 'photo_working' AND m12.meta_key = 'greeting_accident' AND m13.meta_key = 'greeting_criminal' AND post_name = 'myname' "); //表示 foreach ($result as $value) { $the_post_id = $value->id; $sql_for_eyecatch = " SELECT meta_value FROM $mydb->postmeta WHERE post_id = (SELECT meta_value FROM $mydb->postmeta WHERE post_id = $the_post_id AND meta_key = '_thumbnail_id') AND meta_key = '_wp_attached_file'"; $eyecatch = $mydb->get_var($sql_for_eyecatch); $the_image = $value->photo_working; $sql_for_imagework = " SELECT guid FROM $mydb->posts WHERE ID = $the_image"; $imagework = $mydb->get_var($sql_for_imagework); print('<li>'.$value->post_title.'</li></ul></div> <h2 class="title">'.$value->post_title.'</h2> <div class="profile-detail"> <div class="clearfix"> <div class="image1"><img width="300px" src="'.$eyecatch.'" alt="'.$value->post_title.'" /></div> <div class="text"> <h5 class="name"><span class="wide">'.$value->post_title.'</span>('.$value->name_furigana.')</h5> <table> <tbody> <tr> <th style="width: 120px;">テスト1</th> <td style="width: 230px;">'.$value->position.'</td> </tr> <tr> <th>テスト2</th> <td>'.$value->association.'</td> </tr> <tr> <th>テスト3</th> <td>'.$value->number.'</td> </tr> <tr> <th>テスト4</th> <td>'.$value->place.'</td> </tr> <tr> <th>テスト5</th> <td>'.$value->graduate.'</td> </tr> <tr> <th>テスト6</th> <td>'.$value->hobby.'</td> </tr> <tr> <th>テスト7</th> <td>'.$value->motto.'</td> </tr> </tbody></table> <img src="'.$imagework.'" alt="'.$value->post_title.'" /> </div> </div> <h4 class="clr">テスト8</h4> <div class="greeting clearfix"> <p>'.$value->greeting.'</p> </div> <h4 class="clr">テスト9</h4> <div class="greeting clearfix"> <p>'.$value->greeting_accident.'</p> </div> <h4 class="clr">テスト10</h4> <div class="greeting clearfix"> <p>'.$value->greeting_criminal.'</p> </div> </div>'); }
回答8件
あなたの回答
tips
プレビュー