FileMakerでWordPressを編集するシリーズです。何かにつけて「新規は危険なのでやらないほうがいいです」と書きましたがやっぱり新規を作りたい曲面もあります。FileMakerを使ってローカルから新規ポストを作ってみましょう。
新規ポストの注意
新規ポストを作るときの注意点は次の二点です。
- IDはWordPressが作ってくれますから作成の邪魔しちゃいけません
- 空欄不可の項目がありますから対処を忘れずに
これを踏まえて新規ポストを作ります。適当にpostsテーブルに新規レコードを作ってタイトルだけ入れたらエラーになります。ですので、新規ポストについてはスクリプトに仕込んでおき、常にそのスクリプトを実行するというのが望ましいと思います。
新規ポストの手順
WordPressには新規ポストを作る関数が用意されています。
wp insert post
データベースにポストを追加するコマンドです。phpではこのように書きますね。
<?php wp_insert_post( $post, $wp_error ); ?>
この関数は値のチェックやデフォルト値の設定を行います。FileMakerから新規を作るとき、このコマンドを真似れば上手くいきそうです。
wp_insert_post のリファレンスに詳しく載っていますからよく読んで、必須のデフォルト値をフィールドに挿入できるようスクリプトを仕込みましょう。
必須項目に何を入れていいのか分からないときは空文字を入れます。「 (スペース)」とか。何も入れないとエラーが出ます。
新規ポストの必要フィールド
- ‘post_status’ => ‘draft’, 普通はdraftかと思います
- ‘post_type’ => ‘post’,ポストタイプを選びます
- ‘post_author’ => $user_id, 放置でデフォルト値が入力されます
- ‘ping_status’ => ‘closed’または’open’または放置でデフォルト値が自動で入力されるっぽい
- ‘to_ping’ => ”, 必須と忠告出ます
- ‘pinged’ => ”,必須と忠告出ます
- ‘post_content_filtered’ => ”,必須と忠告出ます
- ‘post_date’ => [ Y-m-d H:i:s ] 作成日時
- ‘post_date_gmt’ => [ Y-m-d H:i:s ] 作成日時(GMT)
- ‘post_excerpt’ => ”,必須と忠告出ます
- ‘post_content’ => ”, 必須と忠告出ます
- ‘post_title’ => ” これは当然必須ですわな
多分このようなところかと思います。
空文字
実はプログラムの世界では「何もないものを入れる」ということができます。WordPressで必須のフィールドの多くは「何もないものを入れる」ことによって関数が良きに計らってくれる仕組みになっています。
FileMakerでは何もないものを入れるというコマンドはないので、何かを入れなければなりません。働きに一番近いのが半角スペースを入れることですが、厳密には全然違うものです。
例えば抜粋であるexcerptありますね。これも必須項目です。web上でWordPressを編集すると空でも問題ありませんがFileMaker上で新規ポストを作ると「必須項目に何か入れろ」と叱られます。仕方なしに空白を入れます。ですが、これちょっと問題を抱えています。
例えばあるアーカイブのテンプレートで「抜粋があれば表示する、なければコンテンツから100文字抜き出す」みたいな処理をすることがよくあると思います。このとき、ウェブ上のWordPressで作成した結果だと思い通りの挙動が得られますが、FileMakerで新規ポストを作ってexcerptに半角スペースを入れていると「抜粋がある」ことになって半角スペースだけが表示されてしまいます。
「なぜ抜粋も本文も表示されないのだろう」と首をかしげますが半角スペースが表示されてるだけと気づいて「そういうことかー」と愕然としたりします。
ダッシュボードから修正するとか、無理矢理何か書くとか、対処が必要なので書いておきました。注意すべき点です。
FileMakerのスクリプト
新規ポストのスクリプト、自分は二段構えにしています。
最初のスクリプトはダイアログを次々と表示させてポスト種類、ステイタス、タイトルなど必要事項を入力または確認していき、それぞれグローバル変数に格納します。
次のスクリプトに繋げ、実際に新規レコードを作成して仕込んでいた変数をそれぞれのフィールドにだーっと配置します。最後に確認してついでにローカルpostsに同じデータを作って確定します。
このような二段構えのスクリプトに加えて、新規ポスト専用レイアウトを作ったりして慎重な手順を踏んでいます。
FileMakerで新規ポストを作るときは「空欄不可」と「必須」への入力を忘れずに処理することだけが肝心な部分です。これさえ踏まえていれば何も恐れることはありませんね。
次の記事に続きます。
FileMakerでWordPress カスタムフィールド