Flywheel価格表をカスタムブロックとして再構築する(約10分)
公開: 2021-03-31(グーテンベルク)ブロックエディターは間違いなく現代のWordPressの中心です。 WordPress Coreに向かう途中で完全なサイト編集が行われ、ブロックとそれらが約束するすべてがここにとどまります。
ただし、ブロックは必ずしも私たちが望むことをしたり、私たちが好きなように見えるとは限りません。 あなたが生活のためのサイトを設計して構築するなら、あなたはクッキーカッターのものがウェブ上でこれまでのところしか行かないことを知っています。 ある時点で、本当に特定の方法で表示または動作するために、ページ上のその「ブロック」が必要になります。
カスタムブロックがここでの解決策です! しかし、カスタムブロックには、WordPressをしばらく使用している多くの人にとって、開発に対する非常に異なるアプローチが必要です。
違う? はい!
難しい? いいえ!
完全なカスタムブロックを簡単に作成する方法を紹介します。 そして、それは約10分かかるでしょう。 ここでブロックエディターのスキルを磨きたいフリーランサーやエージェンシークルーにとって、あなたはこれを気に入ると思います!
ブロック
私たちがプロジェクトに取り組んでいて、デザイナーがeコマースWebサイトの素敵なデザインを私たちに渡してくれたと想像してみてください。 最高のWordPress+WooCommerceを使用していますが、すぐに機能しないものがいくつかあります。 これらの1つはここにあります:

ホラップ! これはおなじみのようです!
はい、Flywheelの価格表をカスタムブロックとして再構築します。 ? プラグアンドプレイの価格表ブロックがありますが、ここでは非常にユニークなので、独自の価格表を作成します。
セットアップ
このストーリーの主人公は、GenesisCustomBlocksと呼ばれるプラグインです。 これはwordpress.orgで無料で、次のようないくつかのクールな高度な機能を提供するProバージョンがあります。
- WordPressの新規インストール–ローカルの賛辞
- Genesisカスタムブロック(無料のもの)がインストールされ、アクティブ
- ジェネシスブロックテーマの子テーマ
重要な注意:Genesis Custom Blocksは、Genesis Framework、上記のGenesis Block Theme、またはその他のプラグインやテーマに依存していません。
ブロックの登録と構成
このプラグインの利点は、WordPress管理者で多くのことを実行できることです。
WordPress管理者の左側のメニューで、 [カスタムブロック]>[新規追加]に移動します
現在表示されている画面はブロックビルダーです。ここで、フィールドの追加など、ブロックのさまざまな設定を行います。

このプラグインの仕組みは、ブロックエディターで作業しているユーザーが、フォームのようなインターフェイスのフィールドを介してコンテンツとデータを入力するカスタムブロックを作成することです。 この簡素化された/意見の分かれたインターフェースは、カスタムブロック作成プロセスをスピードアップするものの1つです。 入力UIを理解する必要はありません。
追加するブロックの詳細は次のとおりです。
- 名前:価格表
- スラッグ:価格表
- アイコン:ジェネシスプラネット
追加するフィールドは次のとおりです。
| 名前 | ナメクジ | フィールドタイプ |
| アイコン | アイコン | 画像 |
| 名前 | 名前 | 文章 |
| 説明 | 説明 | 文章 |
| 価格 | 価格 | 番号 |
| ボタンのURL | button-url | URL |
| サイト数 | サイト数 | 番号 |
| 毎月の訪問 | 毎月の訪問 | 番号 |
| ディスクスペース | ディスクスペース | 番号 |
| 帯域幅 | 帯域幅 | 番号 |
カスタムブロックにフィールドを追加すると、次のようになります。

すべてのフィールドを追加すると、次のようになります。

公開を押すと、次に何をすべきかを尋ねるプロンプトが表示されます。

これにより、次のステップに進みます。
ブロックのテンプレート
ブロックは実際に登録され、ブロックエディタで使用できるようになりました。 新しい投稿/ページにジャンプして、他の場合と同じようにブロックを追加できます。 ただし、(まだ)何も表示されません。 これがテンプレートの出番です。
Genesis Custom Blocksを使用すると、WordPressの開発者は、過去10年ほどで磨き上げてきた多くのテンプレート手法を活用できます。 とてもシンプルでなじみがあります。
子テーマでは、次のような新しいフォルダーとファイルをいくつか追加します。
/genesis-block-child-theme
/blocks
/pricing-table
block.php
block.css
ここで注意すべきこと:
- テーマ(子テーマ)に
blocksフォルダーを追加します。 - 現在作業しているブロックに固有のフォルダーを追加し、ブロックのスラッグが何であれ、この場合は
pricing-tableという名前を付けます。 - PHPファイルとCSSファイルを追加します。 これらは、テンプレートコードを追加する場所です。
PHPファイルから始めて、基本的なHTMLマークアップとCSSクラスから始めましょう。
これは次のようになります。
<div class="fw-pricing-table">
<img src="">
<h3 class="fw-pricing-table__name"></h3>
<p class="fw-pricing-table__description"></p>
<div class="fw-pricing-table__price">
<span>$</span>
<span></span>
<span>/mo</span>
</div>
<a class="fw-pricing-table__btn" href="">Get Started</a>
<div class="fw-pricing-table__site-count">
<span></span>
<span>WordPress Site</span>
</div>
<div class="fw-pricing-table__resources">
<div>
<p><span> monthly visits</span></p>
<progress value="" max="400000"></progress>
</div>
<div>
<p><span>GB Disk</span></p>
<progress value="" max="50"></progress>
</div>
<div>
<p><<span>GB bandwidth</span></p>
<progress value="" max="500"></progress>
</div>
</div>
</div>
注意事項:
- たくさんのCSSクラスの準備ができています。 注:CSSに取り組むことはできますが、理にかなっています。
-
<progress>HTMLタグを使用してリソースバーを処理します。
次に、プラグインが使用できるようにする単純なPHP関数を使用します。 利用できるものはたくさんありますが、おそらくほとんどの時間を以下の2つを使用して過ごすことになります。 このブロックの最初のものを排他的に使用しています。
| 働き | それが何をするか |
block_field() | ブロックをページ/投稿に追加するときに、ユーザーがフィールドに入力したデータを取得して出力します。 |
block_value() | ブロックをページ/投稿に追加するときに、ユーザーがフィールドに入力したデータを取得します。 |
したがって、これらの関数を使用すると、PHPテンプレートファイルは次のようになります。
<div class="fw-pricing-table">
<img src="<?php block_field( 'icon' ); ?>">
<h3 class="fw-pricing-table__name"><?php block_field( 'name' ); ?></h3>
<p class="fw-pricing-table__description"><?php block_field( 'description' ); ?></p>
<div class="fw-pricing-table__price">
<span>$</span>
<span><?php block_field( 'price' ); ?></span>
<span>/mo</span>
</div>
<a class="fw-pricing-table__btn" href="<?php block_field( 'url' ); ?>">Get Started</a>
<div class="fw-pricing-table__site-count">
<span><?php block_field( 'site-count' ); ?></span>
<span>WordPress Site</span>
</div>
<div class="fw-pricing-table__resources">
<div>
<p><?php block_field( 'monthly-visits' ); ?><span> monthly visits</span></p>
<progress value="<?php block_field( 'monthly-visits' ); ?>" max="400000"></progress>
</div>
<div>
<p><?php block_field( 'disk-space' ); ?><span>GB Disk</span></p>
<progress value="<?php block_field( 'disk-space' ); ?>" max="50"></progress>
</div>
<div>
<p><?php block_field( 'bandwidth' ); ?><span>GB bandwidth</span></p>
<progress value="<?php block_field( 'bandwidth' ); ?>" max="500"></progress>
</div>
</div>
</div>
そのblock_field()関数を使用してデータをフェッチおよび出力した場所を確認できます。 関数の引数としてフィールドのスラッグを使用するだけです。 例: block_field( 'icon' ) 。 これは画像フィールドタイプであるため、その画像のURLを返します。

CSSの場合、これをblock.cssテンプレートファイルに配置します。 繰り返しになりますが、CSSは好きなように回転させることができ、私が書いた特定のコードはこのチュートリアルには特に関係ありませんが、ここに残してチェックアウトします。
.fw-pricing-table {
border-radius: 4px;
transition: box-shadow .3s ease-in-out;
border: 1px solid #e7e7e7;
background-color: #fff;
padding: 2rem 2em 4em;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}
.fw-pricing-table:hover {
box-shadow: 0 5px 22px 0 rgb(0 0 0 / 10%);
}
.fw-pricing-table img {
max-height: 100px;
width: auto;
}
.fw-pricing-table__name {
margin-top: 20px;
font-weight: 400;
}
.fw-pricing-table__description {
font-size: 16px;
font-style: italic;
font-family: serif;
max-width: 160px;
}
.fw-pricing-table__price {
color: #50c6db;
display: flex;
align-items: flex-start;
font-size: 46px;
font-weight: 500;
}
.fw-pricing-table__price span:last-child {
font-size: 24px;
margin-top: 6px;
}
.fw-pricing-table__btn {
display: block;
background-color: #338199;
color: #fff;
padding: 6px 20px;
border-radius: 18px;
font-size: 13px;
text-transform: uppercase;
letter-spacing: 1px;
font-weight: 500;
margin-top: 10px;
}
.fw-pricing-table__btn:hover {
background-color: #01516e;
color: #fff;
}
.fw-pricing-table__site-count {
font-size: 14px;
margin-top: 24px;
font-weight: 500;
color: #50c6db;
border-top: 1px solid #ddd;
padding-top: 20px;
}
.fw-pricing-table__resources {
margin-top: 8px;
}
.fw-pricing-table__resources>div {
display: flex;
flex-direction: column;
align-items: flex-start;
}
.fw-pricing-table__resources p {
font-size: 13px;
font-weight: 600;
margin-bottom: 0;
margin-top: 18px;
}
.fw-pricing-table__resources progress[value] {
margin-top: 6px;
-webkit-appearance: none;
appearance: none;
height: 6px;
border: none;
border-radius: 3px;
overflow: hidden;
}
.fw-pricing-table__resources progress[value]::-webkit-progress-bar {
background-color: #e7e7e7;
}
.fw-pricing-table__resources progress[value]::-webkit-progress-value {
background-color: #50c6db;
border-radius: 3px;
}
ここでのCSSの最も興味深い部分は、 <progress>タグのスタイルです。 少し厄介ですが、それはそれが何であるかです。 <progress>を避けたい場合は、それらのネストされたdivセットアップに切り替えて、セット幅を計算できます。
以上です! ?
要約:
- WP管理者でブロックを追加して構成しました
- わずか29行の基本的なHTMLと単一のPHP関数を含むPHPテンプレートファイルを作成しました
- スタイリングのためにCSSを
block.cssにドロップしました。
カスタムブロックを使用する
これで、ジャンプして新しい投稿またはページを作成し、ブロックを追加できます。 価格設定オプションの4列スタイルを維持するには、最初に列ブロックを追加してから、カスタム価格設定テーブルブロックを各列にドロップします。
「ブロックの追加」ボタンをクリックすると、価格表ブロックの準備ができていることがわかります。

以下は、4つの列があり、カスタムブロックを4回追加した方法を示しています。 個々のブロックを選択すると、コンテンツをドロップするためのフィールドを提供するフォームUIに切り替わることがわかります。 フォームビューから離れてクリックすると、プレビューが表示されます。

ブロックエディタでは見栄えがよく、フロントエンドでも同様に見栄えがします。 列ブロックも活用しているため、すべてが素晴らしく、応答性が高くなっています。
グーテンベルクのレスポンシブコラムブロックから作業し、それに頼ることができるように設計されたため、このブロックの合計ビルド時間は10分未満でした。
ブロックをさらに改善するためにできることがいくつかあります。
- 複数形にする必要のある文字列がいくつかあります。 つまり、「WordPressサイト」は、複数のサイト制限があるプランの場合は「WordPressサイト」である必要があります。 PHPテンプレートファイルのいくつかの基本的なロジックでこれを解決できます。
- 列ブロックをスキップして、代わりにリピーターフィールド(Pro機能)を使用して、すべてのプランを1つのブロックに含めることができます。
- 大きい数値にはコンマを追加します。
- プログレスバーは、最大の関係に対する正確な値を示します。 これは少し奇妙に見えます。 値のより概念的なものに切り替えることができます。
まとめ
このブロックをダウンロードしてインストールする場合は、ここからファイルをダウンロードできます。 カスタムブロックのインポートに関するドキュメントは、ここにあります。
その他の重要なリンク:
- プラグイン
- ドキュメントサイト
- GenesisSlackコミュニティ
Genesisカスタムブロックの動作をもう少し見たい場合は、DE {CODE}での最近のセッションで、約15分で4つの個別のカスタムブロック(複雑さが増す)を作成してデモを行いました。 ここでオンデマンドレコーディングをチェックしてください。
これがお役に立てば幸いです。また、カスタムデザインやビルドにBlockEditorの機能を活用することがいかに簡単であるかを理解していただければ幸いです。
乾杯!
Flywheelを使用してGenesisで構築されたStudioPressテーマに無料でアクセスできます!

あなたのホスティングプロバイダーがあなたのために最大限の努力をすることが重要です、そしてそれはパフォーマンスとセキュリティを超えています! 35を超えるGenesisで構築されたStudioPressテーマに追加費用なしでアクセスできるため、Flywheelは美しいテーマのライブラリを提供するため、Webサイトの目標に合った方法でサイトを構築または再構成できます。 Flywheelの詳細については、こちらをご覧ください。
