Skip to content

Commit 5a57e19

Browse files
committed
add %post_date% and %modified_date%
1 parent c626284 commit 5a57e19

File tree

4 files changed

+42
-3
lines changed

4 files changed

+42
-3
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ HTMLを使用した場合、そのまま出力されるように構築されて
4646
| `%year%` | 基準日と現在の年差 |
4747
| `%monthnum%` | 基準日と現在の月差(1ヶ月あたり30日で計算のため多少ブレあり) |
4848
| `%day%` | 基準日と現在の日差 |
49+
| `%post_date%` | 記事の投稿日 |
50+
| `%modified_date%` | 記事の最終更新日 |
51+
52+
`%post_date%` `%modified_date%` で使用する日付フォーマットをカスタマイズする」にチェックを入れると、その隣にあるテキストボックスに入力された日付フォーマットに沿って `%post_date%` `%modified_date%` が表示されます。
53+
チェックが入っていないときは `設定 > 一般設定 > 日付のフォーマット` 項目で設定された日付フォーマットで表示されます。
4954

5055
## CSS設定
5156
表示されるメッセージに適用するCSSを設定します。

dist/js/jcm.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,14 @@ var jcm_content = document.getElementById('jcm_content_message');
33
var jcm_post_time = document.getElementById('jcm_content_time');
44
var jcm_reference_date = document.getElementById('jcm_reference_date');
55
var jcm_reference_type = document.getElementById('jcm_reference_type');
6-
if (jcm_post_time !== null && jcm_reference_date !== null && jcm_reference_type !== null) {
6+
var jcm_modified_date = document.getElementById('jcm_modified_date');
7+
var jcm_post_date = document.getElementById('jcm_post_date');
8+
if (jcm_post_time !== null && jcm_reference_date !== null && jcm_reference_type !== null && jcm_modified_date !== null && jcm_post_date !== null) {
79
var jcm_post_time_text = jcm_post_time.value;
810
var jcm_reference_date_text = Number(jcm_reference_date.value);
911
var jcm_reference_type_text = jcm_reference_type.value;
12+
var jcm_modified_date_text = jcm_modified_date.value;
13+
var jcm_post_date_text = jcm_post_date.value;
1014
if (jcm_post_time_text !== null) {
1115
// 記事の日付
1216
var post_date = new Date(jcm_post_time_text.toString());
@@ -28,6 +32,8 @@ if (jcm_post_time !== null && jcm_reference_date !== null && jcm_reference_type
2832
jcm_text = jcm_text.replace(/%year%/, diff_year.toString());
2933
jcm_text = jcm_text.replace(/%monthnum%/, diff_month.toString());
3034
jcm_text = jcm_text.replace(/%day%/, diff_day.toString());
35+
jcm_text = jcm_text.replace(/%post_date%/, jcm_modified_date_text.toString());
36+
jcm_text = jcm_text.replace(/%modified_date%/, jcm_post_date_text.toString());
3137
// DOM書き換え
3238
jcm_content.innerText = '';
3339
jcm_content.insertAdjacentHTML('afterbegin', jcm_text);

index.php

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ function jcm_load_scripts() {
4747
* %year%:記事と現在の年差
4848
* %monthnum%:記事と現在の月差(1ヶ月あたり30日で計算のため多少ブレあり)
4949
* %day%:記事と現在の日差
50+
* %post_date%:記事の投稿日
51+
* %modified_date%:記事の最終更新日
5052
*/
5153
function jcm_add_content($content) {
5254
// 比較基準タイプ設定
@@ -73,11 +75,26 @@ function jcm_add_content($content) {
7375
} else {
7476
$message_text = 'この記事は%year%年以上前に書かれたものです。<br>情報が古い可能性があります。';
7577
}
78+
// 日付フォーマット設定
79+
if (get_option( 'jcm_date_format_check' ) ==='custom' && get_option( 'jcm_date_format' )) {
80+
$date_format = get_option( 'jcm_date_format' );
81+
} else {
82+
$date_format = get_option( 'date_format' );;
83+
}
84+
7685

77-
// DOM構築
86+
/* DOM構築 */
87+
// 比較基準タイプ
7888
$message = '<input type="hidden" id="jcm_content_time" value="'.$content_time.'" style="display:none;">';
89+
// 比較基準日数
7990
$message .= '<input type="hidden" id="jcm_reference_date" value="'.$reference_date.'" style="display:none;">';
91+
// 比較基準日or年
8092
$message .= '<input type="hidden" id="jcm_reference_type" value="'.$reference_type.'" style="display:none;">';
93+
// 最終更新日
94+
$message .= '<input type="hidden" id="jcm_modified_date" value="'.get_the_modified_date($date_format).'" style="display:none;">';
95+
// 投稿日
96+
$message .= '<input type="hidden" id="jcm_post_date" value="'.get_the_date($date_format).'" style="display:none;">';
97+
// メッセージDOM
8198
$message .= '<div id="jcm_content_message" style="display:none;">'.$message_text.'</div>';
8299
if (get_option('jcm_option_css') === 'custom') {
83100
$message .= '<style>'.get_option('jcm_option_css_custom').'</style>';
@@ -107,6 +124,8 @@ function jcm_field() {
107124
// 表示メッセージ
108125
add_settings_field( 'jcm_option_message', '表示メッセージ', 'jcm_option_message', 'writing', 'jcm_option_section' );
109126
register_setting( 'writing', 'jcm_option_message' );
127+
register_setting( 'writing', 'jcm_date_format_check' );
128+
register_setting( 'writing', 'jcm_date_format' );
110129
// CSS設定
111130
add_settings_field( 'jcm_option_css', 'CSS設定', 'jcm_option_css', 'writing', 'jcm_option_section' );
112131
register_setting( 'writing', 'jcm_option_css' );
@@ -149,7 +168,10 @@ function jcm_option_message() {
149168
<li><code>%year%</code>:記事と現在の年差</li>
150169
<li><code>%monthnum%</code>:記事と現在の月差(1ヶ月あたり30日で計算のため多少ブレあり)</li>
151170
<li><code>%day%</code>:記事と現在の日差</li>
171+
<li><code>%post_date%</code>:記事の投稿日</li>
172+
<li><code>%modified_date%</code>:記事の最終更新日</li>
152173
</ul>
174+
<label><input name="jcm_date_format_check" type="checkbox" value="custom" <?php echo checked( 'custom', get_option( 'jcm_date_format_check' ) ); ?> /><code>%post_date%</code><code>%modified_date%</code>で使用する日付フォーマットをカスタマイズする</label><input type="text" name="jcm_date_format" id="jcm_date_format" value="<?php echo get_option( 'jcm_date_format' ) === false ? get_option( 'date_format' ) : get_option( 'jcm_date_format' ); ?>">
153175
</fieldset>
154176
<?php
155177
}

src/ts/jcm.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,14 @@ let jcm_content = document.getElementById('jcm_content_message');
22
let jcm_post_time = (<HTMLInputElement>document.getElementById('jcm_content_time'));
33
let jcm_reference_date = (<HTMLInputElement>document.getElementById('jcm_reference_date'));
44
let jcm_reference_type = (<HTMLInputElement>document.getElementById('jcm_reference_type'));
5-
if(jcm_post_time !== null && jcm_reference_date !== null && jcm_reference_type !== null) {
5+
let jcm_modified_date = (<HTMLInputElement>document.getElementById('jcm_modified_date'));
6+
let jcm_post_date = (<HTMLInputElement>document.getElementById('jcm_post_date'));
7+
if(jcm_post_time !== null && jcm_reference_date !== null && jcm_reference_type !== null && jcm_modified_date !== null && jcm_post_date !== null) {
68
const jcm_post_time_text = jcm_post_time.value;
79
const jcm_reference_date_text:number = Number(jcm_reference_date.value);
810
const jcm_reference_type_text:string = jcm_reference_type.value;
11+
const jcm_modified_date_text:string = jcm_modified_date.value;
12+
const jcm_post_date_text:string = jcm_post_date.value;
913
if(jcm_post_time_text !== null) {
1014
// 記事の日付
1115
const post_date = new Date(jcm_post_time_text.toString());
@@ -28,6 +32,8 @@ if(jcm_post_time !== null && jcm_reference_date !== null && jcm_reference_type !
2832
jcm_text = jcm_text.replace(/%year%/,diff_year.toString());
2933
jcm_text = jcm_text.replace(/%monthnum%/,diff_month.toString());
3034
jcm_text = jcm_text.replace(/%day%/,diff_day.toString());
35+
jcm_text = jcm_text.replace(/%post_date%/,jcm_modified_date_text.toString());
36+
jcm_text = jcm_text.replace(/%modified_date%/,jcm_post_date_text.toString());
3137

3238
// DOM書き換え
3339
jcm_content.innerText = '';

0 commit comments

Comments
 (0)