【WordPress】カスタムフィールドの値がクイック編集で消えてしまう対処法

  • URLをコピーしました!

WordPressで作成したカスタムフィールド(functions.php)で、保存処理の記述次第ではクイック編集時に消えてしまうことがあります。

目次(クリックでジャンプ)

カスタムフィールドの値が消えてしまう原因

原因としては、カスタムフィールドの値を保存する関数はクイック編集時にも呼び出される為、クイック編集時にはカスタムフィールドの値を取得できず、空と判断され、そのままdelete_post_metaで削除してしまっているからです。

delete_post_metaを使用しなければ良い話かと思いますが、後の処理に響いてくる為削除関数は必ず使った方が良いです。

カスタムフィールドの値がクイック編集で消えてしまう対処法

カスタムフィールドの値を保存する関数を編集(functions.php)

function save_custom_fields($post_id){ $save_fields = [
 'この配列にカスタムフィールドのnameを入れていく',
     'この配列にカスタムフィールドのnameを入れていく'
 ];
 foreach($save_fields as $value) {
 if (isset( $_POST['action'] ) && $_POST['action'] == 'inline-save') {
 // クイック編集の場合は何もしない
 return $post_id;
 }elseif (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
 // オートセーブの時は何もしない
 return $post_id;
 }
 elseif(isset($_POST[$value])) {
 update_post_meta($post_id, $value, $_POST[$value] );
 } else {
 delete_post_meta($post_id, $value);
 }
 }
}
add_action('save_post', 'save_custom_fields');
現状このようなコードを使用しておりますがもしもっと良いコードがあれば有識者の方教えてください…
おすすめのフリーランス向け求人・案件探しサービス

高単価案件、週3日~などフレキシブルな働きが可能な事が特徴の転職サービスです。案件をチェックするだけであれば無料の為、エンジニアやデザイナーの方は是非登録してみてください。

4275件と案件数豊富です(2024年4月現在)
コピペパーツストック COPPY

この記事が気に入ったら
フォローしてね!

役に立った!と思ったらシェアお願いします
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

フリーランスのWebデザイナー「Kizineko」です。Webサイトのデザイン~コーディング、簡易的なプログラム実装等、Web制作に係る広くに携わっております。当ブログでは日々のメモ帳として便利なコードなどを共有しております。

目次(クリックでジャンプ)