同列階層に2つWordpressをインストールしており、1つのWordpressをルートで表示しています。
DBは別々です。
-wp ←ルートに表示
-blog
上記の「wp」で表示しているトップページの中に、「blog」の新着記事(投稿)を表示したいです。
いろいろと調べて「wp」のfunction.php内に下記を追記しました。
/*DB設定を行います。*/ $another_db_name = 'dbname'; $another_db_user = 'dbuser'; $another_db_pass = 'dbpass'; $another_db_host = 'another_host'; $another_tb_prefix = 'wp_hoge_'; $anoteher_wpdb = new wpdb($another_db_user, $another_db_pass, $another_db_name, $another_db_host); //プレフィックスの設定(忘れがち) $anoteher_wpdb->set_prefix($another_tb_prefix);
参考にしたURL:http://qiita.com/rojiuratech/items/87d5f7dd1a59bc791308
取得したい情報は、「blog」内の投稿最新記事6記事なのですが、取得するSQL文が良くわからず困っています。。
【取得したい情報】
・ページタイトル
・投稿日時
・カテゴリ
・アイキャッチ画像
SQL
1<dl> 2<?php 3$results = $anoteher_wpdb->get_results(" 4 SELECT post_title, guid, ID, post_date 5 FROM $anoteher_wpdb->posts 6 WHERE post_type = 'post' 7 AND post_status = 'publish' 8 ORDER BY post_date DESC 9 LIMIT 6 10"); 11foreach ($results as $value) { 12 $date = str_replace('-', '.', mb_substr($value->post_date, 0, 10)); 13 print('<dt><span class="date">'.$date.'</span></dt><dd><a href="'.$value->guid.'">'.$value->post_title.'</a></dd>'); 14} 15?> 16</dl>
上記で、投稿日時とページタイトル・ページURLまで取得出来ました。
アイキャッチ画像とカテゴリの取得方法が分かりません。
よろしくお願いいたします。
回答をいただいたので試した方法を追記します。
PHP
1<?php 2//一覧情報取得 3$result = $anoteher_wpdb->get_results(" 4 SELECT post_title, id, guid, post_date 5 FROM $anoteher_wpdb->posts 6 WHERE post_type = 'post' 7 AND post_status = 'publish' /* かつ公開済の記事 */ 8 ORDER BY post_date DESC /* 新しい順に並び替え */ 9 LIMIT 6 10"); 11 12$the_post_id = 0;// カテゴリとアイキャッチを取得したい投稿のID 13 14$sql_for_categories = "SELECT t.term_id, t.name, t.slug 15 FROM {$anoteher_wpdb->term_relationships} AS tr 16 INNER JOIN {$anoteher_wpdb->terms} AS t ON t.term_id = tr.term_taxonomy_id 17 WHERE tr.object_id = {$the_post_id}"; 18 19$categories = $anoteher_wpdb->get_results($sql_for_categories, ARRAY_A); 20 21$sql_for_eyecatch = "SELECT meta_value 22 FROM {$anoteher_wpdb->postmeta} 23 WHERE post_id = (SELECT meta_value FROM {$anoteher_wpdb->postmeta} WHERE post_id = {$the_post_id} AND meta_key = '_thumbnail_id') AND meta_key = '_wp_attached_file'"; 24 25$eyecatch = $anoteher_wpdb->get_var($sql_for_eyecatch); 26 27//表示 28foreach ($results as $value) { 29 $date = str_replace('-', '.', mb_substr($value->post_date, 0, 10)); 30 print('<dt><span class="date">'.$date.'</span><span class="cate">'.$categories.'</span></dt><dd><a href="'.$value->guid.'"><img src="'.$value->eyecatch[0].'" />'.$value->post_title.'</a></dd>'); 31} 32?>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/10 03:07
退会済みユーザー
2016/01/10 03:34
2016/01/11 02:54
2016/02/04 05:39