FileMakerでWordPressを編集 その1 概要

FileMaker ProとWordpressを接続するお話を書いてきて、最終的にFileMakerからMySQLサーバーに直結してしまうところまで行きました。しかしもちろんそれで終わりではありません。それは始まりにすぎません。FileMakerでどのようにWordpressの編集を効率化していったか、自分の備忘録のためだけにまた書き進んでいこうという新連載です。

広告

Digital Boo Pennguin Icon この記事は一度公開していた内容を消して全面的に書き直しました。「その1」とか「概要」に全くふさわしくない難解な記事になってしまったからです。同内容はいずれアップし直します。

FileMakerでWordpress

FileMakerでWordpressの編集を行うという大枠のシリーズです。これまでの記事は、このページのトップに載せたメニューの構成になっています。これまでの記事を前提にしていることもありますので改めて掲載しておきました。

リモートと接続してFileMakerで運用

ということで、すでにFileMakerでMySQLサーバーに接続済みの状態です。ここから個々のテーブルと接続します。

WordPressのテーブル構造はWordPress CSVエクスポートインポート、そしてデータベース構造にも書きました。Codexページにも詳しく載っています。

リレーションシップタブからテーブルに接続

リモートのテーブルと接続するには、FileMakerの メニューコマンド、管理 > データベース からリレーションの画面を開いて下方左のボタンをクリックします。

まずは基本となるwp_postsと接続しましょう。

posts読み込み

超基本的にはこれだけでOKです。が、必要に応じて、_postmeta, _term_relationships, term_taxonomy, termsなどを同様に接続し、リレーションを設定します。こんな感じになります。

主要なテーブルを繋げたところ
主要なテーブルを繋げたところ

これでテーブルと接続されており、テーブル内のフィールドにもすべてアクセスできます。ローカルのテーブルを作って繋げたり、リレーションを組み合わせて自分にとって便利で有用なシステムが作っていけることでしょう。

現時点ではこの程度の記述に留めておきますね。

用語の確認

ここで用語の確認ですが、データベースにはテーブルというものがあります。テーブル内にはフィールドというものがあります。個々のデータはレコードとか言います。

wp_postsというのがテーブル、その中の例えばpost_contentがフィールド、実際のpost_contentの中身はレコードと。そんなところです。ネット越しに接続したものを「リモート」パソコン内のデータを「ローカル」と使い分けます。

FileMakerのリレーションシップ画面に出てくるグラフィカルなテーブルはオカレンスと言います。テーブルをオカレンスとして並べたり繋げたりするということで、ひとつのテーブルに複数のオカレンスを持たせられます。いまいちよくわかりませんがテーブルのエイリアスみたいなものかと思ってます(違ってたら正しいことを教えてください)

FileMakerのレイアウトデザイン

FileMakerの特徴はレイアウトデザインにつきます。自由にデザインできる便利さ楽しさもありますが、レイアウトはテーブルと直結しておりまして、同じテーブルの見え方を変えることもレイアウトデザイン、別のテーブルを表示するための仕組みもレイアウトデザインと、こうなっています。

さてリモートのwp_postsに接続しました。テーブルwp_postsのレイアウトは例えばこんな感じになっています。ただフィールドを並べただけの状態です。

postsのフィールド
postsのフィールド

フィールドの置き場所やサイズを工夫すると例えばこんなふうに本文と抜粋を修正するためのレイアウトデザインができあがりますね。

postsレイアウトの例
postsレイアウトの例

一覧のしやすいデザイン、本文修正用、いろいろ確認用、レイアウトはいくらでも作れます。「どのテーブルをベースとして表示するレイアウトであるか」ということだけ押さえておけばデザインの自由を謳歌できます。

見た目を作り込むことは楽しい作業です。ここからの使いやすいレイアウトや便利な自動化の遊びも楽しいものになりますが、とりあえず置いといて話を先に進めます。

ローカルテーブルの計画

MySQLの各テーブルに接続するとテーブルを読み込めますし、データに手を入れたり変更を施したりできます。ただしリモートのデータですから速度が遅いです。数万件のデータがあったりした日にはソートや絞り込みも随分待たされますし、あまり快適環境とは言えません。

それに、直接データを触るのですからちょっとビビるというのもあります。

そこでもう一歩踏み越えて工夫をするわけです。どんな工夫をするのか、その目的は何なのか。こうです。

基本ローカルデータで編集し、ある程度まとめてリモートに送る仕組みを目指す

そもそもの最初、CSVで書き出して読み込んで作業してまた戻すということを目指していました。つまり安全なローカルで作業して本番に持っていくという考え方です。

直接データを触るのはちょっとした本文の手入れなどでは楽ちんの威力を発揮します。しかし他の複雑な作業は、ローカルで編集してリモートに持っていくという、こういうやり方を目指したいところです。基本的にはローカルデータで編集をさくさく行って、ある程度まとまってからリモートに送るということですね。

リモート編集の弊害

リモートデータを直接触って編集するのは速度が遅いだけでなく他にも弊害があります。システム的に勝手に変更してはならない部分がたくさんありますし、何より致命的なのはカテゴリーなどタクソノミーやカスタムフィールドなどをポストに紐付けるリレーションを手動で勝手に作ってはいけないからです。

例えば新規ポストを作ったときにそのIDを好きな数字にするなんてできませんし、カテゴリーやアイキャッチ画像をポストに登録したくても外部からリレーションを作成することなんかできません。できるとしても大変ややこしいです。

これらはWordpressの仕組みの根っこの部分で自動的に処理される部分で、データベースのデータだけを直接触ってしまうと破滅的な結果になりかねません。

ということで後々あれこれと悩むことにもなりますが、まず第一歩としてローカルデータを用意するというところから始めることにします。

ローカルデータを用意する

ローカルのテーブルをどのように作るのか、フィールドをどうするのか、何が最良なのか答えはありませんし使う人の好き好きというか必要性を元に考えていくことですので一律の答えなんかありません。

それでもまず思いつくのは最も重要なテーブルであるpostsですね。wp_postsというテーブル名でしょうか、これがやっぱ基本のキとなります。ローカルにおける司令塔にもなるでしょう。wp_postsとよく似たローカルpostsテーブルを用意するのは正しい選択かと思います。

posts

ということでローカルpostsテーブルを作ります。名前は何でもいいですけどlocal_postsなんてのしたらwp_postsと似ていて判りやすいかも。

もしリモートとローカルが同じデータを持っていない場合は、後ほどそれを同期する必要があります。面倒臭いので最初くらいは同じデータでスタートすることが望ましい気がします。

リモートのpostsからだーっとデータをエクスポートしてローカルに読み込めばいいですね。フィールドのすべてが必要というわけではなく、最低限IDフィールドさえあれば後は何とでもなります。次の記事でも書きます。

で、ローカルテーブルとリモートテーブルをIDで照合するリレーションを組んでおきましょう。これが基本の形となります。

ID照合のリレーション
ID照合のリレーション

これが基本となり、後々ローカルのpostsにはいろんなテーブルやフィールドが増えまくります。が、それはまた後の話です。

カスタムフィールドとタクソノミー

さて問題はカスタムフィールドとタクソノミーです。

このページ、以前この下に相当量の文章がありまして、タクソノミーやカスタムフィールドを扱う内容をごちゃごちゃ書いていました。

しかし「その1 概要」という目的の記事内容と合わないのでごっそり削除しました。

実はCSVとの絡みですでに書いています。丁寧さに欠ける判りにくい記事だと思いますし、いずれ同じような内容のものをゆっくり書いていきます。

 

次の記事「基本の編集(仕切り直し)」に続きます。前半、内容が被りますが、基本的なことはじっくりと。

 

広告

コメントを残す