コピペで簡単!SWELLの投稿リストをToDoリスト風にカスタマイズ

コピペで簡単!SWELLの投稿リストをToDoリスト風にカスタマイズ

こんなSWELLユーザーに読んでほしい!

  • ブログでToDoリストやチェックリストを作りたい
  • 死ぬまでにやりたいことをまとめたい
  • CSSもよくわからないし、難しいカスタマイズはムリ・・・

今回は、XのDMやポイビューのお問い合わせからご質問いただいたカスタマイズをご紹介します。

カスタマイズの内容はというと、タイトルのとおり
SWELLの投稿リストでToDoリストを作るというカスタマイズです。

基本的には、簡単な設定とCSSのコピペだけで完結します。

例として、Xにポストした現在実装中の様子を動画でご覧ください。
ちょっとデザイン要素を加えればこんなカンジになります。

この例では、ToDoリスト領域をSwiper化してページ送りも可能にしています。(今回は解説しません)

投稿リストをToDoリスト風にカスタマイズする方法

まずは、今回のカスタマイズ内容をご覧ください。

カスタマイズ前

投稿リスト(デフォルト)

カスタマイズ後

投稿リスト(カスタマイズ)

※リストの内容はあくまでもダミーです

左がデフォルトの投稿リストブロック(テキスト型)、右がCSSのみでカスタマイズしたToDoリスト風の投稿リストブロックです。達成した項目は緑色でチェックマークがONになります。記事にリンクさせない設定もできます。
投稿リストブロックの簡単な設定と、hoverアニメーションの変更も加えたCSSをコピペするだけで実装できます。
以下にカスタマイズ方法を解説しますね。

カスタマイズ手順

STEP
「Page Links To」プラグインのインストール

記事ページへのリンク動作を制御できるプラグイン「Page Links To」をインストールします。

「Page Links To」で検索してもヒットしない場合は、作者名「Mark Jaquith」検索してみてください。

STEP
ToDoリスト用記事の作成

投稿リストブロックを使用したTo DOリストなので、まずは「ToDo」などのカテゴリを作成し、そのカテゴリにリスト用の記事を投稿します。
最初はまだ「達成目標」なので、記事の中身は空でもかまいません。
なお、リストでは

  • 未達成:リンクなし
  • 達成:記事リンクあり
  • 達成:リンク先指定またはリンクなし

の3つのステータスで表現およびリンク動作を制御します。

それぞれのステータスは、投稿編集画面で「投稿」設定の「リンク先のページ」を以下のように設定します。

  • 未達成:リンクなし
リンク設定-未達成:リンクなし

未達成の記事(初期投稿時)は#falseを設定します。

  1. 達成:記事リンクあり
リンク設定-達成:記事あり

達成したときに記事を書いた場合は、Its normal WordPress URLを選択すると記事にリンクします。

  1. 達成:リンク先指定またはリンクなし
リンク設定-達成:リンクなし

達成したときに記事を書かない場合や、別ページなどにリンクさせたいときに設定します。
リンクさせない場合は#を入力してください。

とりあえず、やりたいことをずらっと列挙して、タイトルと「リンク先のページ」だけを設定し公開していきます。
やりたいことは随時追加していくイメージでもよいと思います。

STEP
投稿リストの設定とクラス名の設定

ToDoリストを表示させたいページに投稿リストブロックを配置します。
そして、投稿リストブロックの設定を以下のように設定します。

  • レイアウト選択: テキスト型
  • 投稿の表示順序: 新着順
  • 各種表示設定: 更新日を表示する
  • カテゴリ表示位置: 表示しない

公開日:新着順に並び、更新日=達成日として表示します。

「表示する投稿数」や、その他の設定は自由に設定してください。

投稿リストの設定-1
投稿リストの設定-2

そして、この投稿リストブロックを選択して、ブロックの設定で高度な設定>追加 CSS クラスにクラス名-todoを設定します。

ここまでで、記事の登録と投稿リストブロックの準備は完了です。あとは、必要なCSSをコピペするだけです。

STEP
CSSをコピペ

以下の「ToDoリスト風CSS」をコピーし、適切な個所にコピペします。

サイト全体で使用する場合カスタマイザ > 追加CSS あるいはテーマのstyle.css

特定の固定ページで使用する場合カスタムCSS&JS > CSS用コード

/* =========================================================
//  コピペで簡単!SWELLの投稿リストをToDoリスト風にカスタマイズ
// ========================================================= */
/* カスタムプロパティの設定 */
.p-postListWrap.-todo {
  /* チェックマークアイコン(-true:達成/-false:未達成) */
  --icon_todo-true: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwb2x5bGluZSBwb2ludHM9IjkgMTEgMTIgMTQgMjIgNCI+PC9wb2x5bGluZT48cGF0aCBkPSJNMjEgMTJ2N2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTEiPjwvcGF0aD48L3N2Zz4=);
  --icon_todo-false: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PC9zdmc+);
  /* チェックマーク色 */
  --color_todo-true: rgb(67, 152, 10);    /* 達成:緑 */
  --color_todo-false: rgba(0, 0, 0, .8);  /* 未達成:黒 */
}

/* 投稿リストのデフォルト装飾打ち消し */
.p-postListWrap.-todo .p-postList.-type-simple { border-top: none; }
.p-postListWrap.-todo .p-postList.-type-simple .p-postList__link { border-bottom: none; padding: 0.25em; }
.p-postListWrap.-todo .p-postList .p-postList__link:hover { background-color: transparent; }

/* ToDoリストのデフォルト装飾(デフォルトは達成済) */
.p-postListWrap.-todo .p-postList .p-postList__item {
  padding: 0 0 0 2em;
  --icon_todo: var(--icon_todo-true);
  --color_todo: var(--color_todo-true);
  color: var(--color_todo);
}

/* チェックマーク */
.p-postListWrap.-todo .p-postList .p-postList__item::before {
  content: "";
  display: block;
  position: absolute;
  width: 1.5em;
  aspect-ratio: 1;
  background: var(--color_todo);
  top: 0.2em;
  left: 0;
  -webkit-mask-image: var(--icon_todo);
          mask-image: var(--icon_todo);
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
}
/* 未達成の場合 */
.p-postListWrap.-todo .p-postList .p-postList__item:has(a[href="#false"]) { 
  pointer-events: none;
  --icon_todo: var(--icon_todo-false);
  --color_todo: var(--color_todo-false);
}
.p-postListWrap.-todo .p-postList .p-postList__item:has(a[href="#false"]) .p-postList__meta {
  opacity: 0;
}

/* 達成済みでリンク無効の場合 */
.p-postListWrap.-todo .p-postList .p-postList__item:has(a[href="#"]) { 
  pointer-events: none;
}

/* リンクありホバー時のマーカーアニメーション */
.p-postListWrap.-todo .p-postList .p-postList__item .p-postList__title { 
  position: relative;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.p-postListWrap.-todo .p-postList .p-postList__item .p-postList__title::after {
  content: "";
  display: block;
  width: 100%;
  height: 0.5em;
  background: var(--color_todo-true);
  opacity: 0.3;
  position: absolute;
  bottom: 0;
  z-index: -1;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s cubic-bezier(0.785, 0.135, 0.15, 0.86);
}
.p-postListWrap.-todo .p-postList .p-postList__item:hover .p-postList__title::after {
  transform: scaleX(1);
}

/* 日付をタイトル下に移動 */
.p-postListWrap.-todo .p-postList .p-postList__body {
  display: flex;
  flex-direction: column-reverse;
}

/* 更新日アイコンを「達成日:」文字に変更 */
.p-postListWrap.-todo .p-postList .c-postTimes__modified::before {
  content: "達成日:";
  font-family: var(--swl-font_family) !important;
  font-size: 10px;
  top: 0;
}

チェックマークのアイコンは、SWELLのアイコン設定のものと同じアイコンを使用しています。

達成リストの色は、L:10 「チェックマーク色」で変更できます。

完成

以上です。

サポートフォーム

このカスタマイズに関するお問い合わせや、
その他リクエストなど、お気軽にどうぞ。

5
4
3
2
1
個人情報の取り扱いについて

POINT-OF-VIEW.BLOG(以下「当サイト」)では、以下のとおり個人情報保護方針を定め、個人情報の保護を推進致します。

# 個人情報の利用目的

当サイトでは、お問い合わせの際、名前やメールアドレス等の個人情報を入力いただきます。取得した個人情報は、お問い合わせに対する回答や必要な情報を電子メールなどでご連絡する場合に利用させていただくものであり、これらの目的以外では利用いたしません。

# 広告について

当サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net等のアフィリエイトサービス)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。
クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。

Cookieを無効にする方法やGoogleアドセンスに関する詳細は「広告 ポリシーと規約 Google」をご確認ください。

# アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。このGoogleアナリティクスはトラフィックデータの収集のためにクッキー(Cookie)を使用しております。トラフィックデータは匿名で収集されており、個人を特定するものではありません。

くれぐれもカスタマイズは
「自己責任」でお願いします^^;

当ブログでご紹介しているようなカスタマイズ(←本来の意味での)をしなくても、SWELLの基本機能だけで十分オシャレなブログ・サイトが構築できます。

テーマ選びに迷ったらSWELLを選んでおけば間違いないです!
(カスタマイズ沼にハマらないようご注意ください^^;)

\ ご支援ありがとうございます! /

SWELLを使用したブログの構築・カスタマイズのご相談承ります

本業の傍ら、SWELLを使用したブログの構築およびカスタマイズを承っております。
「おしゃれなブログにしたい」
「独自のカスタマイズをしたい」など、
お気軽にご相談ください。
詳しくは、のDMからどうぞ。
まずはで仲良くしてください ^^

WordPressテーマ「SWELL」

17,600円(税込)

シンプル美と機能性の両立。圧倒的な使い心地を追求するWordPressテーマ。
ブロックエディター完全対応!