最近は暦注にハマっている鈴木です。
さて、先日新しいサイト「こよみる」を作ったことを書きましたが、その時にカスタムフィールドとCSVをインポートするプラグインで作ったことを書きました。
スムーズに作れたように思われたかもしれませんが、結構躓いて、失敗もしており、どこで躓いて、どこで失敗したか、その時のことをまとめておきます。
これから、CSVファイルを作って、カスタムフィールドで情報サイトを作ろうかな?と思っている方の参考になれば幸いです。
カスタムフィールドって何?
カスタムフィールドって何?という方もいると思いますので、まずは簡単にカスタムフィールドの説明と思ったのですが、下記の記事を読んでもらった方がわかりやすいと思いますので、下記記事を読んでください。
ミニサイト職人と呼ばれる和田さんの記事です。
コンテンツの管理が簡単になるということが書かれています。
CSVファイルで記事・コンテンツを管理していくことも可能です。
例えば金額を入れているけど、総額表示で変更になったから、金額を修正したい!となった時も、カスタムフィールドの値(項目)をCSV上で変更して流し込めば、簡単に一括修正も可能となります。
手を抜けるところは抜けるように出来る方法とも言えるかもしれません。
Custom Field Template・Really Simple CSV Importerで使ったファイル
今回こよみるの日々の暦と運勢は
- Custom Field Template
- Really Simple CSV Importer
2つのプラグインで作成しています。
この2つのプラグインでサイトを作る場合は、下記のnoteが非常に参考になりました。
上記で書かれていることは今回説明しません。このnoteに書かれてないことで実際に複雑なテンプレートとCSVファイルを作ったがために躓いたことを中心に説明します。
なおインポーターのプラグインの方は最終更新が6年前なので別のものにした方が良いかもしれません。
今日、知りました。
今回、こよみるで使ったCSVファイルは下記からダウンロードできます。
Custom Field Templateに登録したフォーマット([cft] and [cftsearch] Shortcode Format)は下記となります。
使っているWordPressのテーマがCocoonなのでCocoon独自のCSSを表示させるためのclassを一部使っています。
ともにダウンロードして見ながら読んでもらう方がわかりやすいと思います。
ともにただのテキストファイル(CSVファイルも詳しい人なら意味が理解出来るただのテキストファイルみたいなものという意味で)なので、ダウンロードしてもパソコンに危害を加えるものでは無いので安心してダウンロードしてください。
CSVファイルにある [temp id=1][affi id=1](わざと全角の[]にしてあります)はCocoonのテンプレート機能・アフィリエイトタグ機能のショートコードです。
ショートコードを使うことで、例えば日々の暦の中で六曜の友引の説明文を変更したい時も、ショートコードで管理しているので、簡単にショートコードの管理画面で変更ができます。
日々の暦をCSVで流し込む前にCocoonのテンプレートには124個を登録、アフィリエイトタグには1つの合計125個を登録しています。
例えば1番最初の「六曜-先勝」に登録してあるものは下記の画像の通りです。
- Cocoonのショートコード登録
- カスタムフィールドテンプレートオプションの登録
- フォーマット([cft] and [cftsearch] Shortcode Format)の登録
- CSVファイルの作成
この4つが出来て初めて下準備が完成です。
Custom Field Template・Really Simple CSV Importerで躓いたこと
いよいよ本題です。
Custom Field TemplateとReally Simple CSV Importerを使って(というかほぼCustom Field Template)躓いたところ、苦労したところを説明していきます。
post_idで大きく躓く
CSVファイルの一番最初にある「post_id」は指定しなくても問題ありません。
ただ後から実際に投稿ページのpost_idを調べて入力しておかないと後で手間となります。
CSVの中の値・項目で一括で変更したい時が出た時、例えば以前は税別価格だったけど総額表示義務化に伴い総額表示に一括で修正したい場合、post_idを指定しておかないと、新たに記事が生まれるだけで、データの上書きが出来なくなります。
ただ「post_thumbnail」を指定している場合、画像にもpost_idが付与されていくため、連番でpost_idを指定しているとエラーが出て、CSVファイルをインポート出来なくなります。
そのため、post_idを使い、更に「post_thumbnail」を指定する場合、post_idは1つずつ飛ばした番号にしておくことをおすすめします。
例えば奇数のみ・偶数のみというように。
また1度CSVファイルをアップロードしたら「post_thumbnail」の列は削除しておきましょう。
そうしないと再び同じ画像がアップロードされ、同じ画像がフォルダに増えていき、サーバー領域を圧迫していきます。
- post_idの指定は後からデータ上書きのために必要
- post_thumbnailを使う場合、post_idは1つ飛ばして入力しておく
- CSVファイルアップロード後は、post_thumbnailの列は削除
post_nameは決めておくと便利
post_nameはURLのスラッグの指定ですがスラッグの意味ってプログラム等をしていないとわかりにくいと思います。
簡単に言えばURLのパーマリンクで投稿名にしていた場合に割り振られるものです。
この画面で投稿名で「/%postname%/」にしておくと「post_name」がそのまま割り振られます。
一括で大量のページを生み出すことが出来る「Custom Field Template・Really Simple CSV Importer」の組み合わせですが、こよみるみたいに365日分のデータで後からカレンダーを作りたい場合、URLの一覧があった方が楽です。
上記のようにテーブルを使ってカレンダーを作り日にちにリンクを設置する場合、1つ1つリンクを設定していたら途方にくれます。
でも規則性をもったpost_nameにしておいて、URLと組み合わせれば簡単にURLの一括生成が出来て、簡単に表に差し込めます。
こよみるの通常のURLとpost_nameの値をそのままエクセルの「&」での文字列結合を使えば、簡単に一括でURLの生成が行えます。
意味がよくわからないかもしれませんが、規則性のあるコンテンツの場合、URLの一覧を作っておくと後々いろいろ便利なので、post_nameは指定しておくことをおすすめします。
他にも躓いたところ、失敗したところ、間違えたところがあったのですが、忘れている部分もあるので、思い出したら追記していきます。
以上、Custom Field Template・Really Simple CSV Importerで躓いた点でした。
コメント