スポンサーリンク
WordPressのカスタムフィールドプラグイン「Advanced Customf Fields」を使用して、カスタムフィールドを管理しているとき、プレビュー画面ではフィールドの値が表示されない問題が発生しました。
この記事ではこの問題の解決方法を解説します。
スポンサーリンク
プレビュー時に正しい投稿IDが渡されないのが原因
Advanced Custom Fieldsを使ってフィールド値を取得するときに、ACFが取得している投稿IDとプレビュー時の投稿IDに違いがあるときに、この不具合が発生します。
解決方法としては、functions.phpに以下のコードを追加します。
function fix_post_id_on_preview($null, $post_id)
{
if (is_preview()) {
return get_the_ID();
} else {
$acf_post_id = isset($post_id->ID) ? $post_id->ID : $post_id;
if (!empty($acf_post_id)) {
return $acf_post_id;
} else {
return $null;
}
}
}
add_filter('acf/pre_load_post_id', 'fix_post_id_on_preview', 10, 2);
※参考
Preview solution !
https://support.advancedcustomfields.com/forums/topic/preview-solution/page/3/#post-134967
スポンサーリンク
スポンサーリンク