質問編集履歴
1
ソースコード変更しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
以下のソースコードはカスタムフィールドテンプレートを
|
11
|
+
以下のソースコードはアドバンスカスタムフィールドテンプレートを
|
12
12
|
|
13
13
|
プレビュー表示するためのソースコードです。
|
14
14
|
|
@@ -20,99 +20,125 @@
|
|
20
20
|
|
21
21
|
```ここに言語を入力
|
22
22
|
|
23
|
-
// 下書きのpost_IDを取得
|
24
23
|
|
24
|
+
|
25
|
+
// カスタムフィールドをプレビュー対象にする
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
// preview用に保存された下書き情報(post)のIDを取得する
|
30
|
+
|
25
|
-
function get_preview_id(
|
31
|
+
function get_preview_id($postId)
|
32
|
+
|
33
|
+
{
|
26
34
|
|
27
35
|
global $post;
|
28
36
|
|
29
|
-
$preview
|
37
|
+
$previewId = 0;
|
30
38
|
|
31
|
-
|
39
|
+
|
32
40
|
|
41
|
+
if (($post->ID == $postId) && $_GET['preview'] == true && ($postId == url_to_postid($_SERVER['REQUEST_URI']))) {
|
42
|
+
|
43
|
+
// プレビュー表示の際に、自動保存されたpostの下書き情報を取得する
|
44
|
+
|
45
|
+
$preview = wp_get_post_autosave($postId);
|
46
|
+
|
33
|
-
$preview
|
47
|
+
if ($preview != false) { $previewId = $preview->ID; }
|
34
48
|
|
35
49
|
}
|
36
50
|
|
51
|
+
|
52
|
+
|
37
|
-
return $preview
|
53
|
+
return $previewId;
|
38
54
|
|
39
55
|
}
|
40
56
|
|
57
|
+
|
41
58
|
|
59
|
+
function get_preview_postmeta($metaValue, $postId, $metaKey, $single)
|
42
60
|
|
43
|
-
|
61
|
+
{
|
44
62
|
|
45
|
-
|
63
|
+
// プレビュー表示のときにmeta情報(custom fileds情報)を、
|
46
64
|
|
47
|
-
|
65
|
+
// プレビュー用のmeta情報に置き換える
|
48
66
|
|
49
|
-
|
67
|
+
if ($previewId = get_preview_id($postId)) {
|
50
68
|
|
69
|
+
if ($postId != $previewId) {
|
70
|
+
|
51
|
-
$
|
71
|
+
$metaValue = get_post_meta($previewId, $metaKey, $single);
|
52
72
|
|
53
73
|
}
|
54
74
|
|
55
75
|
}
|
56
76
|
|
77
|
+
|
78
|
+
|
57
|
-
return $
|
79
|
+
return $metaValue;
|
58
80
|
|
59
81
|
}
|
60
82
|
|
61
|
-
add_filter(
|
83
|
+
add_filter('get_post_metadata', 'get_preview_postmeta', 10, 4);
|
62
84
|
|
85
|
+
|
63
86
|
|
87
|
+
|
64
88
|
|
65
|
-
//
|
89
|
+
// 下書き情報を作成するときに、対応するcustom filed情報も作成する
|
66
90
|
|
67
|
-
|
91
|
+
// プレビューの際には、この時作ったcustom filed情報を読み出す
|
68
92
|
|
69
|
-
|
93
|
+
// (読み出しているのが、get_preview_postmetaの部分)
|
70
94
|
|
95
|
+
function save_preview_postmeta($postId)
|
71
96
|
|
97
|
+
{
|
72
98
|
|
73
|
-
|
99
|
+
global $wpdb, $acf; // $acfがadvanced custom filedsのglobal 変数
|
74
100
|
|
101
|
+
|
75
102
|
|
103
|
+
if (wp_is_post_revision($postId)) {
|
76
104
|
|
77
|
-
|
105
|
+
if (count($_POST['fields']) != 0) {
|
78
106
|
|
79
|
-
|
107
|
+
foreach ($_POST['fields'] as $key => $value) {
|
80
108
|
|
109
|
+
$field = $acf->get_acf_field($key);
|
110
|
+
|
111
|
+
|
112
|
+
|
81
|
-
|
113
|
+
if (count(get_metadata('post', $postId, $field['name'], $value)) != 0) {
|
114
|
+
|
115
|
+
update_metadata('post', $postId, $field['name'], $value);
|
116
|
+
|
117
|
+
update_metadata('post', $postId, "_" . $field['name'], $field['key']);
|
118
|
+
|
119
|
+
} else {
|
120
|
+
|
121
|
+
add_metadata('post', $postId, $field['name'], $value);
|
122
|
+
|
123
|
+
add_metadata('post', $postId, "_" . $field['name'], $field['key']);
|
124
|
+
|
125
|
+
}
|
126
|
+
|
127
|
+
}
|
82
128
|
|
83
129
|
}
|
84
130
|
|
85
|
-
|
86
|
-
|
87
|
-
foreach($fields as $val2){
|
88
|
-
|
89
|
-
if(is_array($_POST[mb_strtolower(rawurlencode(key($val2)))])){
|
90
|
-
|
91
|
-
foreach( $_POST[mb_strtolower(rawurlencode(key($val2)))] as $cft_val ){
|
92
|
-
|
93
|
-
if (count(get_metadata('post', $post_ID, key($val2), $cft_val)) != 0) {
|
94
|
-
|
95
|
-
update_metadata( 'post', $post_ID, key($val2), $cft_val[0] );
|
96
|
-
|
97
|
-
} else {
|
98
|
-
|
99
|
-
add_metadata( 'post', $post_ID, key($val2), $cft_val[0] );
|
100
|
-
|
101
|
-
}
|
102
|
-
|
103
|
-
}
|
104
|
-
|
105
|
-
}
|
106
|
-
|
107
|
-
}
|
108
|
-
|
109
|
-
do_action(
|
131
|
+
do_action('save_preview_postmeta', $postId);
|
110
132
|
|
111
133
|
}
|
112
134
|
|
113
135
|
}
|
114
136
|
|
115
|
-
add_action(
|
137
|
+
add_action('wp_insert_post', 'save_preview_postmeta');
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
|
116
142
|
|
117
143
|
```
|
118
144
|
|
@@ -122,13 +148,11 @@
|
|
122
148
|
|
123
149
|
上記コードの
|
124
150
|
|
125
|
-
・custom-field-template → custom-field-suite
|
126
|
-
|
127
|
-
・
|
151
|
+
・acf → cfs
|
128
152
|
|
129
153
|
|
130
154
|
|
131
|
-
以上のように変更しましたが、
|
155
|
+
以上のように変更しましたが、プレビューで表示されずです。
|
132
156
|
|
133
157
|
|
134
158
|
|