WordPressの記事一覧または記事単体を別のサイトで表示したい時ありますよね。
例えば、既存のコーポレートサイトに、別途で構築したWordPressブログの新着記事一覧を表示したい場合など。
以下、ごちゃごちゃと書いておりますがアイデアとしては「データベースから直接WordPressの記事情報を取り出し表示する」というものです。
この例では新着記事(投稿)を4件表示します。
<?php
/* PHPでデータベースに接続 */
$mysql = mysql_connect('ホスト名', 'ユーザー', 'パスワード');
$db = mysql_select_db('データベース名', $mysql);
mysql_set_charset('utf8');
/* MySQL構文で記事データを指定 */
$result = mysql_query('
SELECT ID, post_date, post_title, guid, post_content
FROM 接頭辞_posts
WHERE post_status = "publish"
AND post_type = "post"
ORDER BY post_date DESC
LIMIT 4
');
while ($item = mysql_fetch_assoc($result)):
/* 基本情報(タイトル、URL、コンテンツ) */
$title = $item["post_title"];
$link = $item["guid"];
$content = $item["post_content"];
/* カテゴリー情報も取得したい場合 */
$category = array();
$cate_res = mysql_query("
SELECT t3.name
FROM 接頭辞_term_relationships t1
INNER JOIN 接頭辞_term_taxonomy t2 ON t1.term_taxonomy_id = t2.term_taxonomy_id
INNER JOIN 接頭辞_terms t3 ON t2.term_id = t3.term_id
WHERE t1.object_id = ".$item["ID"]."
");
while ($cate_row = mysql_fetch_assoc($cate_res)){
$category[] = $cate_row["name"];
}
$category = implode(",",$category);
?>
<!-- HTMLにてPHP変数を表示 -->
<article>
<a href="<?php echo $link;?>">
<h2><?php echo $title; ?></h2>
</a>
<div><?php echo $content; ?></div>
<span><?php echo $category;?></span>
</article>
<?php
endwhile;
/* PHPでデータベースから切断 */
mysql_close($mysql);
?>
WordPressで利用しているサーバーのコントロールパネル等で、データベースの情報は確認できます。
「PHPでデータベースに接続」部分の「mysql_connect」と「mysql_select_db」の引数に関してはそれぞれの上記にて確認した値を記載して下さい。
また、「接頭辞」はWordPress構築の際に設定した値です。
「wp_」といったものが多いかと思います。
こちらはWordPressインストールディレクトリ直下の「wp-config.php」にて確認可能です。
尚、WordPressと記事を表示したい別サイトがそれぞれ別のサーバーにある場合は一筋縄ではいきません。
通常、外部サーバー(外部ホスト)からMySQLの接続ができない設定となっているためです。
こちらはMySQL側のサーバーの設定をごちょごちょやることでどうにかなりますが、難しいのでここではご紹介しません。


