EZ-SPARROW > TECH NOTES > WordPress カレンダー 土日を非表示にする方法

WordPress カレンダー 土日を非表示にする方法

September 01, 2022

WordPressのデフォルトカレンダーで土日を非表示にしたいという場合に、CSSだけで非表示にするコード


table#wp-calendar tr:first-child td:nth-last-child(1) {
  display:none;
}
table#wp-calendar tr:first-child td:nth-last-child(2) {
  display:none;
}
#wp-calendar td.pad {
  line-height:0;
}
table#wp-calendar tr th:nth-child(6) {
  display:none;
}
table#wp-calendar tr td:nth-child(6) {
  display:none;
}
table#wp-calendar tr th:nth-child(7) {
  display:none;
}
table#wp-calendar tr td:nth-child(7) {
  display:none;
}

まず、第一週ははじまる曜日によってtdの数が異なる。例えば金曜日がその月の1日の場合、月曜日から木曜日は td.pad となりひとつの td としてコードが吐き出される。

それで、nth-last-childをつかって、後ろから1番目と2番目、を指定して非表示にする。

ただし、土曜日がその月の1日の場合、一行何も表示しないまま、td.pad が高さを維持してしまうため、 #wp-calendar td.pad のline-height:0; を指定。

第二週目以降はnth-childで6番目と7番目を指定して非表示にする。

最終週は終わる曜日によってtdの数が異なるが、この場合はcssが効かなくても問題ない。

以下まとめて書くと次のようになる。

WordPress カレンダーで土日を非表示にするコード

table#wp-calendar tr:first-child td:nth-last-child(1),
table#wp-calendar tr:first-child td:nth-last-child(2),
table#wp-calendar tr th:nth-child(6),
table#wp-calendar tr td:nth-child(6),
table#wp-calendar tr th:nth-child(7),
table#wp-calendar tr td:nth-child(7) {
  display:none;
}
#wp-calendar td.pad {
  line-height:0;
}

RELATED POSTS