###前提・実現したいこと
カスタムフィールドスイートで入力した値を
投稿などのプレビューでも表示できるようにしたいです。
以下のソースコードはアドバンスカスタムフィールドテンプレートを
プレビュー表示するためのソースコードです。
カスタムフィールドスイート用にカスタマイズしてできないかと考えています。
###ソースコード
// カスタムフィールドをプレビュー対象にする // preview用に保存された下書き情報(post)のIDを取得する function get_preview_id($postId) { global $post; $previewId = 0; if (($post->ID == $postId) && $_GET['preview'] == true && ($postId == url_to_postid($_SERVER['REQUEST_URI']))) { // プレビュー表示の際に、自動保存されたpostの下書き情報を取得する $preview = wp_get_post_autosave($postId); if ($preview != false) { $previewId = $preview->ID; } } return $previewId; } function get_preview_postmeta($metaValue, $postId, $metaKey, $single) { // プレビュー表示のときにmeta情報(custom fileds情報)を、 // プレビュー用のmeta情報に置き換える if ($previewId = get_preview_id($postId)) { if ($postId != $previewId) { $metaValue = get_post_meta($previewId, $metaKey, $single); } } return $metaValue; } add_filter('get_post_metadata', 'get_preview_postmeta', 10, 4); // 下書き情報を作成するときに、対応するcustom filed情報も作成する // プレビューの際には、この時作ったcustom filed情報を読み出す // (読み出しているのが、get_preview_postmetaの部分) function save_preview_postmeta($postId) { global $wpdb, $acf; // $acfがadvanced custom filedsのglobal 変数 if (wp_is_post_revision($postId)) { if (count($_POST['fields']) != 0) { foreach ($_POST['fields'] as $key => $value) { $field = $acf->get_acf_field($key); if (count(get_metadata('post', $postId, $field['name'], $value)) != 0) { update_metadata('post', $postId, $field['name'], $value); update_metadata('post', $postId, "_" . $field['name'], $field['key']); } else { add_metadata('post', $postId, $field['name'], $value); add_metadata('post', $postId, "_" . $field['name'], $field['key']); } } } do_action('save_preview_postmeta', $postId); } } add_action('wp_insert_post', 'save_preview_postmeta');
###試したこと
上記コードの
・acf → cfs
以上のように変更しましたが、プレビューで表示されずです。
分かる方がいらっしゃればご教授ください。
よろしくお願いします。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/25 01:07