はじめに
以前、ショートコードで変更前後の画像を表示する方法を紹介しました。
今回は、WordPress標準の「タブ」ブロックを利用し、画像をクリックして変更前・変更後を切り替え表示します。
この記事では、この方法について説明します。
完成イメージ


実装手順
- ラベルGutenbergエディターでの設定

以下に手順を示します。
- WordPress標準の「タブ」ブロックを配置します。
- それぞれのタブパネルに「画像」ブロックを配置します。1番目のタブパネルには変更前の画像、2番目のタブパネルには変更後の画像を設定します。
- 「タブ」ブロックに高度な設定→追加CSSクラスに
before-afterと入力します。
- ラベルCSSを追加
以下のコードをstyle.cssに追加します。
.wp-block-tabs.before-after { position: relative; /* タブリストを画像の上に重ねる */ > .wp-block-tab-list { display: block; inset: 0; position: absolute; z-index: 10; /* タブボタンを画像全体に重ねる */ button { height: 100%; inset: 0; opacity: 0; pointer-events: none; position: absolute; width: 100%; /* 選択されていないタブボタンをクリック可能にする */ &:not([aria-selected="true"]) { pointer-events: auto; } } } /* パネルを同じ位置に重ねる */ > .wp-block-tab-panels { display: grid; position: relative; z-index: 1; > .wp-block-tab-panel { display: block !important; grid-area: 1 / 1; transition: opacity 0.2s; &[hidden] { opacity: 0; transition: opacity 0.2s, visibility 0s 0.2s; visibility: hidden; } } } /* ラベル */ .wp-block-tab-panel figure { margin: 0; position: relative; width: fit-content; &::after { background: rgb(0 0 0 / 40%); border-radius: 4px; bottom: 2%; color: #fff; font-weight: bold; left: 2%; padding: 8px; position: absolute; right: 2%; text-align: center; } } .wp-block-tab-panel:first-child figure::after { content: "変更前"; } .wp-block-tab-panel:last-child figure::after { content: "変更後"; } }
さいごに
今回紹介した方法を使えば、WordPress標準の「タブ」ブロックを利用して、画像をクリックするだけで変更前・変更後の画像を切り替えられます。
タブボタンを画像全体に重ねることで、切り替え機能をCSSのみ実装できます。
画像の表示サイズや重なり方は、サイトのレイアウトに合わせて調整してみてください。

