66343views女子高生社長の椎木里佳さんがパクリ謝罪。最近、wordpressのカスタムフィールドで自作設定をしてみたところ、通常公開する分には問題なく動作していたのですが、そのカスタムフィールドの値が、じつは予約投稿した時にだけ限定で消えるエラーが起きていたことに気がつきました。原因を追究したところ、単純にロジックミスでした。プラグインに頼らず、カスタム投稿でカスタムフィールドを自作した時に、予約投稿でうまくいかないって方がいましたら参考にしてみてください。原因はアクションフック「add_action」の「save_post」のソース部分でした通常公開ではうまく機能しているということで、疑ったのは記録・保存の部分「save_post」でした。使っていたソースは、http://www.paka3.net/wpplugin28/のサイト様で公開されていたものを利用させて頂いて、下記のようなソースを使っていました。}}こちらは、ページが保存される際、「入力された値」と、「保存してある値」を取得し、「入力された値」があれば、update_post_metaで更新処理を行い、「入力された値」がなければ、delete_post_metaで削除処理を行うというものです。予約投稿をすると、「入力された値」が存在しても、削除処理が実施されてしまうようです。いうわけで、ものすごく乱暴に解決しようとすると、下記の具合です。}}要するに、削除処理のソースを入れないだけです。単純なカスタムフィールドであれば、ただupdate_post_metaを更新するだけでOKだと思います。あとはnonce処理、自動保存ルーチンの時は処理しない、ユーザー権限の処理などを加えて、下記のソースにすると良さそうです。}}改良ソースには下記サイト様の内容を引用させて頂きました。独自のカスタムフィールドを設定する同じトラブルに遭った人もいたようですが、こちらの方は自己完結していました。記述してあるように、やはりロジックに問題があるとダメなようですね。予約投稿時にカスタムフィールドの値がクリアされてしまう。まとめwordpressで予約投稿した時にカスタムフィールドの値が消えてしまうエラーが起きた時は、もし通常公開で問題がないなら、まずはロジックを疑ってみましょう。消えるカスタムフィールド・・・。BLÅがオシャレで高音質!PROFILEWEB制作をやっているyoshiと申します。PVは月間10万程度。要件定義や構築が得意で、HTML/css/javascript/PHP/git/wordpress/MT/DB/photoshop/illustrator/fireworksなど扱えます。現在、サーバー・アプリなどを習得中です。