お世話になっております。何度も同じような質問の繰り返しになってしまいますがどなたかご教授いただけますと幸いです。
別のWORDPRESSサイトでカスタム投稿タイプに投稿されているのデータをSQL文にてセットで取り出し、表示させたいと思っております。
内容は以下の通りになります。
**(別のWORDPRESSサイトはcustom post type と Advanced custom fieldのプラグインを使っています。) **
###●別のWORDPRESSサイトより取り出したい内容
カスタム投稿タイプ "voice"
カスタムフィールド "voice_name" お客様の名前
"voice_address" お客様の住所
"voice_staff" スタッフよりのコメント
###●実行したこと
PHP
1//wordpressのfunctions.phpに以下の内容を記述 2<?php 3 4$another_db_name = '別のWORDPRESSのデータベース名'; 5$another_db_user = '別のWORDPRESSのユーザー名'; 6$another_db_pass = '別のWORDPRESSのパスワード'; 7$another_db_host = '別のWORDPRESSのホスト名'; 8$another_tb_prefix = 'wp_'; 9 10$anoteher_wpdb = new wpdb($another_db_user, $another_db_pass, $another_db_name, $another_db_host); 11 12//プレフィックスの設定 13$anoteher_wpdb->set_prefix($another_tb_prefix); 14?> 15 16 17//表示させたいテンプレートファイルの記述 18 19<?php 20 21$results = $anoteher_wpdb->get_results(" 22SELECT p.id, p.guid, p.post_title, p.post_content, pm00.meta_value AS 'name', pm01.meta_value AS 'address', pm02.meta_value AS 'staff' 23FROM (SELECT id, post_title, post_content 24FROM $anoteher_wpdb->posts 25WHERE post_type = 'voice' AND post_status = 'publish') AS p 26LEFT JOIN (SELECT post_id, meta_value FROM wp_postmeta WHERE meta_key = 'voice_name') AS pm00 ON p.id = pm00.post_id 27LEFT JOIN (SELECT post_id, meta_value FROM wp_postmeta WHERE meta_key = 'voice_address') AS pm01 ON p.id = pm01.post_id 28LEFT JOIN (SELECT post_id, meta_value FROM wp_postmeta WHERE meta_key = 'voice_staff') AS pm02 ON p.id = pm02.post_id 29ORDER BY post_date DESC 30LIMIT 5"//5件 31 32); 33 34 35foreach ($results as $voc) ://vocの名前にて代入 36 echo "<div id='post-".$voc->id."'>"; 37 echo "$voc->post_title"; //タイトル 38 echo "<p>お客様のお名前: {$voice_name}$voc->name</p>"; 39 echo "$voc->post_content"; //内容 40 echo "<p>お客様の住所: {$voice_address}$voc->address</p>"; 41 echo "<p>スタッフからのコメント: {$voice_staff}$voc->staff</p>"; 42 echo "</div>"; 43endforeach; 44?>
と記載しましたが残念ながらエラーはないものの出力できませんでした。
FROMの部分をFROM $wpdb->postsに変更したり色々試行錯誤してみましたが現在出力できていない状態が続いております。
どなたかお手数ですがご教授・ご指摘いただけると幸いです。
どうぞよろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー