回答編集履歴
5
補足
test
CHANGED
@@ -89,3 +89,55 @@
|
|
89
89
|
独自のテンプレートにしたい場合はファイル名を**archive-event.php**として作成して下さい。
|
90
90
|
|
91
91
|
こちらも投稿の一覧を表示させるループは通常の書き方で大丈夫です。
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
---
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
**補足**
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
WordPress(PHP)に限った話ではないですが「取得する情報の内容」を確認する癖を付けておくと良いです。
|
104
|
+
|
105
|
+
```PHP
|
106
|
+
|
107
|
+
// ACFのデイトピッカーで設定したカスタムフィールドの日付を取得 yymmdd
|
108
|
+
|
109
|
+
$field_date = get_field( 'fi_day' );
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
// 書式化したローカルの日付を取得 Ymd
|
114
|
+
|
115
|
+
$local_date = date( 'Ymd' );
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
// WordPressで設定した日付のフォーマットで投稿の日付を取得
|
120
|
+
|
121
|
+
$wp_date = get_the_date();
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
// 指定したフォーマットで投稿の日付を取得 Ymd
|
126
|
+
|
127
|
+
$wp_date_new = get_the_date( 'Ymd' );
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
echo '<pre>';
|
132
|
+
|
133
|
+
var_dump( $field_date );
|
134
|
+
|
135
|
+
var_dump( $local_date );
|
136
|
+
|
137
|
+
var_dump( $wp_date );
|
138
|
+
|
139
|
+
var_dump( $wp_date_new );
|
140
|
+
|
141
|
+
echo '</pre>';
|
142
|
+
|
143
|
+
```
|
4
脱字追加
test
CHANGED
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
`date()`による書式化した日付の指定の仕方とACFの設定する日付の指定の仕方はフォーマットが異なります。
|
44
44
|
|
45
|
-
「**フォーマットを保存する**」という項目ではデフォルトの`yymmdd`とし、「**表示フォーマット**」という項目では日付を認識しやすいように`yy/mm/dd`としてください。
|
45
|
+
ACFで設定する「**フォーマットを保存する**」という項目ではデフォルトの`yymmdd`とし、「**表示フォーマット**」という項目では日付を認識しやすいように`yy/mm/dd`としてください。
|
46
46
|
|
47
47
|
これはそのまま`echo`などで出力すると`20160502`のような日付の形式になるので`2016/05/02`という形式で表示させたい時は次のようにして下さい。
|
48
48
|
|
3
修正
test
CHANGED
@@ -34,11 +34,13 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
**追記**
|
37
|
+
**追記**(一部訂正)
|
38
38
|
|
39
39
|
|
40
40
|
|
41
|
+
ACFで指定する日付と`date_query`で指定する日付を混同しています。(私も混同しました)
|
42
|
+
|
41
|
-
|
43
|
+
`date()`による書式化した日付の指定の仕方とACFの設定する日付の指定の仕方はフォーマットが異なります。
|
42
44
|
|
43
45
|
「**フォーマットを保存する**」という項目ではデフォルトの`yymmdd`とし、「**表示フォーマット**」という項目では日付を認識しやすいように`yy/mm/dd`としてください。
|
44
46
|
|
2
コードの一部を修正
test
CHANGED
@@ -52,7 +52,17 @@
|
|
52
52
|
|
53
53
|
// 日付の形式を変換
|
54
54
|
|
55
|
+
if ( !empty($field_date) ) {
|
56
|
+
|
55
|
-
$view_date = date( 'Y/m/d', strtotime( $field_date ) );
|
57
|
+
$view_date = date( 'Y/m/d', strtotime( $field_date ) );
|
58
|
+
|
59
|
+
} else {
|
60
|
+
|
61
|
+
// 日付のフィールドが取得出来なかった時の表示
|
62
|
+
|
63
|
+
$view_date = 'date not found.';
|
64
|
+
|
65
|
+
}
|
56
66
|
|
57
67
|
// 表示
|
58
68
|
|
1
追記
test
CHANGED
@@ -27,3 +27,53 @@
|
|
27
27
|
`date("yy/mm/dd")`という箇所を`date("y/m/d")`などの`meta_value`と同じ適切な形式に修正してください。
|
28
28
|
|
29
29
|
現状では、例えば本日2016年4月29日の日付を`date("yy/mm/dd")`で取得すると`1616/0404/2929`となってしまいます。
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
---
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
**追記**
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
すみません、`date("yy/mm/dd")`をそのまま`echo`すると`1616/0404/2929`となるので勘違いしていましたが、日付のフォーマットは`yymmdd`で良いみたいです。
|
42
|
+
|
43
|
+
「**フォーマットを保存する**」という項目ではデフォルトの`yymmdd`とし、「**表示フォーマット**」という項目では日付を認識しやすいように`yy/mm/dd`としてください。
|
44
|
+
|
45
|
+
これはそのまま`echo`などで出力すると`20160502`のような日付の形式になるので`2016/05/02`という形式で表示させたい時は次のようにして下さい。
|
46
|
+
|
47
|
+
```PHP
|
48
|
+
|
49
|
+
// 日付のフィールドを取得
|
50
|
+
|
51
|
+
$field_date = get_field( 'fi_day' );
|
52
|
+
|
53
|
+
// 日付の形式を変換
|
54
|
+
|
55
|
+
$view_date = date( 'Y/m/d', strtotime( $field_date ) );
|
56
|
+
|
57
|
+
// 表示
|
58
|
+
|
59
|
+
echo $view_date;
|
60
|
+
|
61
|
+
```
|
62
|
+
|
63
|
+
また、これに合わせて`meta_value`で指定していた日付は`'meta_value' => date( 'Ymd' )`として下さい。
|
64
|
+
|
65
|
+
カスタムタクソノミーについては`tax_query`を利用した方が柔軟に対応できると思います。
|
66
|
+
|
67
|
+
なお、`tax_query`に渡すカスタムタクソノミーは正確に指定しなければ有効にならないので、よく確認して指定して下さい。
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
そしてカスタム投稿タイプのアーカイブについてですが、これはカスタム投稿タイプで`has_archive`というパラメータが`true`になっていれば、特に何もしなくとも、そのカスタム投稿タイプのアーカイブのURL(`domain.com/event/`など)にアクセスすることでそのまま通常のループ中にすべて表示されます。
|
72
|
+
|
73
|
+
カスタムタクソノミーはプラグインが用意したものということなので、アーカイブページにアクセス出来なければおそらく`has_archive`が有効になっていません。
|
74
|
+
|
75
|
+
また、アーカイブページへのアクセスを確認するときは、念の為にパーマリンク設定を更新してからアクセスしてください。
|
76
|
+
|
77
|
+
独自のテンプレートにしたい場合はファイル名を**archive-event.php**として作成して下さい。
|
78
|
+
|
79
|
+
こちらも投稿の一覧を表示させるループは通常の書き方で大丈夫です。
|