Skip to content

Commit a96511f

Browse files
committed
first commit
1 parent 223f88a commit a96511f

File tree

7 files changed

+132
-0
lines changed

7 files changed

+132
-0
lines changed

dist/css/jcm.css

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/js/jcm.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
"use strict";
2+
var jcm_content = document.getElementById('jcm_content_message');
3+
var jcm_post_time = document.getElementById('jcm_content_time');
4+
var jcm_reference_date = document.getElementById('jcm_reference_date');
5+
var jcm_reference_type = document.getElementById('jcm_reference_type');
6+
if (jcm_post_time !== null && jcm_reference_date !== null && jcm_reference_type !== null) {
7+
var jcm_post_time_text = jcm_post_time.value;
8+
var jcm_reference_date_text = Number(jcm_reference_date.value);
9+
var jcm_reference_type_text = jcm_reference_type.value;
10+
if (jcm_post_time_text !== null) {
11+
// 記事の日付
12+
var post_date = new Date(jcm_post_time_text.toString());
13+
// 現在の日付
14+
var date = new Date();
15+
// 現在と記事の差分
16+
var diff_date = date.getTime() - post_date.getTime();
17+
var diff_year = Math.floor(diff_date / (1000 * 60 * 60 * 24 * 365));
18+
var diff_month = Math.floor(diff_date / (1000 * 60 * 60 * 24 * 30));
19+
var diff_day = Math.floor(diff_date / (1000 * 60 * 60 * 24));
20+
// 表示条件比較
21+
var compare_time = jcm_reference_type_text === 'year' ? diff_year : diff_day;
22+
if (compare_time > jcm_reference_date_text) {
23+
// メッセージを取得
24+
if (jcm_content !== null) {
25+
var jcm_text = jcm_content.innerHTML;
26+
// 正規表現置換
27+
if (jcm_text !== null) {
28+
jcm_text = jcm_text.replace(/%year%/, diff_year.toString());
29+
jcm_text = jcm_text.replace(/%monthnum%/, diff_month.toString());
30+
jcm_text = jcm_text.replace(/%day%/, diff_day.toString());
31+
// DOM書き換え
32+
jcm_content.innerText = '';
33+
jcm_content.insertAdjacentHTML('afterbegin', jcm_text);
34+
// メッセージ表示
35+
jcm_content.style.display = "block";
36+
}
37+
}
38+
}
39+
}
40+
}

index.php

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,38 @@
88
License: GPL2
99
*/
1010

11+
/**
12+
* CSS・Javascript読み込み設定
13+
*/
14+
add_action('wp_enqueue_scripts', 'jcm_load_scripts');
15+
function jcm_load_scripts() {
16+
if(is_single() || is_page()) {
17+
$plugin_url = plugin_dir_url( __FILE__ );
18+
wp_enqueue_style('jcm-css', $plugin_url.'dist/css/jcm.css');
19+
wp_enqueue_script('jcm-js', $plugin_url.'dist/js/jcm.js','','',true);
20+
}
21+
}
22+
23+
/**
24+
* the_contentにDOMを追加
25+
* %year%:記事と現在の年差
26+
* %monthnum%:記事と現在の月差(1ヶ月あたり30日で計算のため多少ブレあり)
27+
* %day%:記事と現在の日差
28+
*/
29+
function jcm_add_content($content) {
30+
// 設定
31+
$content_time = get_the_date('Y/m/d'); // 投稿日
32+
// $content_time = get_the_modified_date('Y/m/d'); // 更新日
33+
$reference_date = '1';
34+
$reference_type = 'year';
35+
$message_text = 'この記事は%year%年以上前に書かれたものです。<br>情報が古い可能性があります。';
36+
37+
// DOM構築
38+
$message = '<input type="hidden" id="jcm_content_time" value="'.$content_time.'" style="display:none;">';
39+
$message .= '<input type="hidden" id="jcm_reference_date" value="'.$reference_date.'" style="display:none;">';
40+
$message .= '<input type="hidden" id="jcm_reference_type" value="'.$reference_type.'" style="display:none;">';
41+
$message .= '<div id="jcm_content_message" style="display:none;">'.$message_text.'</div>';
42+
43+
return $message.$content;
44+
}
45+
add_filter('the_content', 'jcm_add_content','10');

src/scss/index.scss

Whitespace-only changes.

src/scss/jcm.scss

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#jcm_content_message {
2+
font-size: 1em;
3+
font-weight: bold;
4+
line-height: 1.5;
5+
color: #ff6664;
6+
margin: 0 auto 30px;
7+
padding: 10px 20px;
8+
border: 2px solid #ff6664;
9+
border-left: none;
10+
border-right: none;
11+
box-sizing: border-box;
12+
background-color: #ffefef;
13+
}

src/ts/index.ts

Whitespace-only changes.

src/ts/jcm.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
let jcm_content = document.getElementById('jcm_content_message');
2+
let jcm_post_time = (<HTMLInputElement>document.getElementById('jcm_content_time'));
3+
let jcm_reference_date = (<HTMLInputElement>document.getElementById('jcm_reference_date'));
4+
let jcm_reference_type = (<HTMLInputElement>document.getElementById('jcm_reference_type'));
5+
if(jcm_post_time !== null && jcm_reference_date !== null && jcm_reference_type !== null) {
6+
const jcm_post_time_text = jcm_post_time.value;
7+
const jcm_reference_date_text:number = Number(jcm_reference_date.value);
8+
const jcm_reference_type_text:string = jcm_reference_type.value;
9+
if(jcm_post_time_text !== null) {
10+
// 記事の日付
11+
const post_date = new Date(jcm_post_time_text.toString());
12+
// 現在の日付
13+
const date = new Date();
14+
// 現在と記事の差分
15+
const diff_date = date.getTime() - post_date.getTime();
16+
const diff_year:number = Math.floor(diff_date / (1000 * 60 * 60 * 24 * 365));
17+
const diff_month:number = Math.floor(diff_date / (1000 * 60 * 60 * 24 * 30));
18+
const diff_day:number = Math.floor(diff_date / (1000 * 60 * 60 * 24));
19+
20+
// 表示条件比較
21+
let compare_time = jcm_reference_type_text === 'year' ? diff_year : diff_day;
22+
if( compare_time > jcm_reference_date_text ) {
23+
// メッセージを取得
24+
if(jcm_content !== null) {
25+
let jcm_text = jcm_content.innerHTML;
26+
// 正規表現置換
27+
if(jcm_text !== null) {
28+
jcm_text = jcm_text.replace(/%year%/,diff_year.toString());
29+
jcm_text = jcm_text.replace(/%monthnum%/,diff_month.toString());
30+
jcm_text = jcm_text.replace(/%day%/,diff_day.toString());
31+
32+
// DOM書き換え
33+
jcm_content.innerText = '';
34+
jcm_content.insertAdjacentHTML('afterbegin',jcm_text);
35+
// メッセージ表示
36+
jcm_content.style.display = "block";
37+
}
38+
}
39+
}
40+
}
41+
}

0 commit comments

Comments
 (0)