参考:ボタンクリックごとにカードを3枚ずつ表示する方法
ボタンをクリックするたびに、表示されていないカードが3枚ずつ表示されます。
全てのカードが表示されると、ボタンが非表示になります。
完成イメージ
実装手順
以下の手順で実装します。
- ラベルGutenbergエディターでの設定
以下に手順を示します。
- 「新着記事」ブロックを配置します。
このとき、表示する記事の数を3の倍数とします。 - 「段落」ブロックに「ボタン」と入力し、インラインタグを「ボタン」に設定します。
高度な設定→追加CSSクラスにmy-btnと入力します。
- 「新着記事」ブロックを配置します。
- ラベルJavaScriptを追加
以下のコードをjavascript.jsに追加します。
jQuery(function ($) { contents = '.widget-entry-cards a'; // 初期表示するカードの数 var show = 3; // クリックで表示するカードの追加数 var num = 3; // 初期表示数を超えるカードを非表示にする $(contents + ':nth-of-type(n+' + (show + 1) + ')').addClass('is-hidden'); $('.my-btn').on('click', function () { // クリックされたボタンの直前のカードをnum個表示 var $target = $(this).prev('.new-list-box').find(contents + '.is-hidden').slice(0, num); // 直前のカードを表示 $target.removeClass('is-hidden'); // 全てのカードが表示された場合、ボタンを非表示 if ($(this).prev('.new-list-box').find(contents + '.is-hidden').length == 0) { $(this).fadeOut(); } }); }); - ラベルCSSを追加
以下のコードをstyle.cssに追加します。
.widget-entry-cards a.is-hidden { display: none; }

