WordPressと既存のホームページの連携

WordPressを利用してみることにしました。

既に、トップページ、問い合わせページ、会社案内はできているので、ブログとして、活用することにしました。

それでも、トップページに、ブログの内容を表示させたいと思い、WordPressのphpファイルを探してみましたが、奥が深くて、どのようにして呼び出すのかつかみきれないので、直接MySQLのテーブルを調べて、タイトルと、ブログ内容、アイキャッチ画像をトップページに表示することにしました。

以下が、タイトル、ブログ内容(120文字までにカット)、登録日付を呼び出すSQLです。

$sql = "SELECT wp_terms.term_id,wp_terms.name,wp_terms.slug,wp_term_relationships.object_id,"
. "wp_posts.ID,wp_posts.post_title,wp_posts.guid,"
. "DATE_FORMAT(wp_posts.post_date,'%Y.%m.%d') AS regDate,"
. "LEFT(wp_posts.post_content,120) AS cont "
. "FROM wp_terms "
. "INNER JOIN wp_term_relationships ON wp_terms.term_id=wp_term_relationships.term_taxonomy_id "
. "INNER JOIN wp_posts ON wp_posts.ID=wp_term_relationships.object_id "
. "WHERE wp_posts.post_status='publish' AND wp_terms.term_id='".$term_id."' "
. "ORDER BY ID DESC LIMIT 10";

$term_idは、ブログで利用している固定ページ「コラム」を指すユニークなIDです。

次にアイキャッチ画像のSQLですが、記事のIDに直接ひも付けしていないので、探し出すのに苦労しました。結局、上記で求めたwp_terms.term_idを利用して、見つけだすことにしました。以下がそのSQL文です。


$sql = "SELECT wp_postmeta.meta_value FROM wp_posts "
. "INNER JOIN wp_postmeta ON wp_postmeta.post_id=wp_posts.ID "
. "WHERE wp_posts.post_mime_type LIKE 'image/%' AND "
. "wp_postmeta.meta_key LIKE '_wp_attached_file' AND "
. "wp_posts.post_parent= :refNr";

:refNrにそれぞれのwp_terms.term_idが入ります。

以上により、トップページにブログの内容を表示することができました。

wordpress, コラム