2018年1月22日に加筆・修正をしました。
WordPressの投稿に対してブランチが切れる便利なプラグインを使用する際に、カスタムフィールド回りでハマったので、そのときに対処したことの備忘録です。
INDEX
WP Post Branches (Ver 2.3.4) の仕様
WP Post Branchesの仕様は下記のようなカンジのようです。
- 個別投稿の管理画面に現れる「ブランチを作る」ボタンでブランチを作成。
- ブランチが切れるのは公開済みの投稿のみ。
- 作成されたブランチ投稿は別のIDで「下書き投稿」として保存される。
- ブランチ投稿を「公開」すると、元の投稿を上書きする。このとき、投稿のIDは元の投稿のIDが引き継がれる。
- カスタム投稿に対応済み。
WP Post Branches でブランチを切った際に見られた不具合
下記2つのプラグインで作成したカスタムフィールドで、不具合が見られました。
- Toolset Types
- Smart Custom Fields
不具合の内容
- 複数登録を可能としたカスタムフィールド(Toolset Types で作成)のフィールドが重複して保存される。
- 複数登録を可能としたカスタムフィールドグループ(Smart Custom Fields で作成)のグループフィールドが重複して保存される。
- 投稿の関連ファイルがコピーされる。
なお、Toolset Typesで作成したカスタムフィールドで、親子投稿の紐付けをした「子の投稿」側の設定は維持されているようでした。
対処したこと
関連ファイル用の修正
3については、情報を公開されている方がいらっしゃいましたので、その通りにプラグインファイルの67〜107行目をコメントアウトすると、うまくいきました。
カスタムフィールド用の修正
プラグインファイルの49〜65行目にカスタムフィールド用の記述がありましたのでコメントアウトしてみると、複数登録を可能としたカスタムフィールドとフィールドグループの重複保存は無くなりました。
ただし、親子投稿の紐付けをした「子の投稿」側の設定は維持できなくなった模様です。対処の方法がわからなかったので、このあたりはひとまず妥協することに。う〜ん。
代替プラグインに切り替える
セルティスラボさんが配布されているCeltispackの中の「post branch utility」であれば、思った通りのブランチ作成が可能なようです。フォーラムへのメンバー登録が必要ですが、プラグインの修正も必要ないので、こちらの方が運用上の都合は良さそうです。
ブランチ作成を前提としたSmart Custom Fieldsの設定
WP Post Branches はブランチ作成の際に別のIDを持った下書き投稿を作成しますので、この場合、Smart Custom Fieldsの投稿ID別表示の設定は使用できません。
個別ページ専用のカスタムフィールド(の投稿?)を作りすぎると、投稿上必要のないカスタムフィールドが管理画面に多く並ぶことになりますので、できるだけ共通で使えることを意識したカスタムフィールドの設定や、適度にカスタム投稿の作成が必要になると感じました。
以上です。