【お知らせ】只今新規受注受付を停止しております
(2025年1月~再開予定)

【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');

現状このようなコードを使用しておりますがもしもっと良いコードがあれば有識者の方教えてください…

Webサイト制作ならKizinekoへ

当サイトKizineko(キジネコ)では、自社更新、メディア運営、SEOに最適化したWebサイト・ホームページ制作を¥84,900(税別)行っております。企業から個人まで、さまざまな方からご依頼を頂いております。くわしいサービス内容については是非一度ホームページをご覧ください。

  • URLをコピーしました!

著者情報

kizinekoのアバター kizineko Webデザイナー

Webデザイナー。制作会社でWebサイト制作/グラフィックデザイン業務に携わり、現在フリーランスとして独立。HTML/CSS/PHP/JS/WordPressなどのWebサイト制作にかかわる言語やツールは勿論、SEO/マーケティングへの知見を深めながら日々制作を行っています。

目次<small>(タップでジャンプ)</small>