「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
ページのアドレスからブログ記事等のIDを求める
Facebookのニュースフィードを読んでいたときに、以下のような投稿を見つけました。
MTで吐き出したアーカイブのURLから、エントリーIDって逆算できるのかなぁ。
この方法を紹介します。
個々のページのアドレスと、そのページに関する情報の対応は、「mt_fileinfo」というテーブルに保存されています。
このテーブルは、ダイナミックパブリッシングの際に、ページのアドレスから、その元になっているブログ記事等の情報を得る際に使われています。
ブログ記事のアーカイブページのアドレスから、そのブログ記事のIDを調べるには、以下のようなSQLを実行します。
ただし、アーカイブページのアドレスには、「http://ホスト名」を除いた部分を指定します。
SELECT fileinfo_entry_id FROM mt_fileinfo WHERE fileinfo_url = 'アーカイブページのアドレス'
例えば、ブログ記事のアーカイブページのアドレスが「http://www.foo.com/2012/07/bar.html」だとします。
この場合、以下のSQLを実行すると、そのブログ記事のIDを得ることができます。
SELECT fileinfo_entry_id FROM mt_fileinfo WHERE fileinfo_url = '/2012/07/bar.html'
ちなみに、mt_fileinfoテーブルでは、以下のような情報も得ることができます。
| フィールド | 内容 |
|---|---|
| fileinfo_category_id | カテゴリ系アーカイブページでのカテゴリのID |
| fileinfo_author_id | ユーザー系アーカイブページでのユーザーのID |
| fileinfo_startdate | 日付系アーカイブページでのアーカイブ開始日の日付 |
| fileinfo_blog_id | アーカイブページが属するブログのID |
| fileinfo_archive_type | ページのアーカイブタイプ |
| fileinfo_template_id | ページの元になっているテンプレートのID |
| fileinfo_templatemap_id | アーカイブページのアーカイブマッピングのID |
