楽天セール開催中!ポイント最大11倍! セール会場へ

SWELL│投稿リストにカスタムフィールドを表示するカスタマイズ

SWELLの投稿リストの抜粋欄へ、カスタムフィールドに保存した読了目安時間を表示する例です。

今まで自作のブログカード等で対応してきましたが、どうしてもSWELLの投稿リストを使いたいという要望で、なんとかカスタムフィールドの値を渡せないか試してみました。

この例では手動入力の抜粋を使います。投稿リストの抜粋表示を有効にし、PC・スマホそれぞれの抜粋文字数を0より大きく設定してください。

SWELL 2.19.0の抜粋処理を基にした例です。手動抜粋のHTMLタグを除去した後にショートコードを展開するため、その戻り値として装飾用HTMLを出力します。他テーマ共通の動作ではありません。

サンプル

サンプルとして3記事だけにカスタマイズを適応しています。

本記事では投稿リストにカスタムフィールドを表示するカスタマイズを紹介します。

目次

著者

WEB制作をしているデジタルノマド
WordPressのカスタマイズが好きで、色々と自作しています。

WordPressのカスタマイズに困ったらご相談ください!

SWELLで投稿リストにカスタムフィールドを表示するカスタマイズ

変更前のPHPと抜粋文を保存し、検証環境で確認します。子テーマのfunctions.phpのPHP内、またはPHPスニペットのどちらか一方へ追加してください。既存のcustom_fieldショートコードや同名関数がある場合は、用途を確認せず重複登録しないでください。

抜粋文には値そのものではなくショートコードを入れ、一覧を表示するときに各投稿のreadtimeを取得します。この例では公開済みでパスワード保護されていない投稿の、1以上の整数だけを表示します。

今回は、記事を読む目安時間のカスタムフィールドを作成して表示させてみます。

カスタムフィールドを設置

まずはカスタムフィールドの値を作りましょう。

Smart Custom Fieldsというプラグインを使ってreadtimeという名前で設定しました。

本記事ではSmart Custom Fields(SCF)を使用しています。ACF(Advanced Custom Fields)を利用する場合もフィールド名を「readtime」に揃えますが、値の取得にはプラグインごとのAPIを使用します。下記のACF向けのコード変更例を確認してください。プラグインを切り替える前に、既存データと表示をテスト環境で確認してください。

Smart Custom Fieldsプラグインを使ってreadtimeという名前のカスタムフィールドを設定する画面。

ここでは計算用の仮定を600文字/分とします。一般的な読書速度を保証する値ではなく、文章の難しさや読者、図表などで所要時間は変わります。

本文の文字数を600で割り、端数を切り上げた1以上の整数をreadtimeへ保存します。次の画像は過去の編集画面例で、文字数表示の位置は利用中の版や設定で確認してください。

記事編集画面のタイトル横に表示されている文字数の確認箇所。

今回は600文字以下なので1分としました。

算出した読了目安の分数をカスタムフィールドに入力した状態。

こんな感じで必要な値をカスタムフィールドに記載します。

ちなみに記事を読む目安時間の自動化も別記事にて紹介しています。

以下は有料コンテンツです。

この記事だけ読みたい方は単品購入、ほかの有料記事も読みたい方は購読プランをご確認ください。

購読対象の記事・料金は、下のプラン案内で確認できます。

役に立った記事を、ブログやSNSで紹介しませんか?

紹介制度の対象記事・購読プランを購入した方は、codocで専用リンクと報酬条件を確認できます。

専用リンク経由で購入されると、設定された紹介報酬が発生します。

購読プランの紹介報酬は初回課金のみが対象です。

codocで紹介リンク・報酬条件を確認する

紹介時は、広告・PRであることが読者に分かるように明記してください。

  • URLをコピーしました!

実装を任せたい方へ

SWELLのカスタマイズ代行

記事のコードをそのまま使うのが不安な場合や、サイトに合わせた調整が必要な場合は当社が実装します。1時間 ¥8,000〜(税込)。テーマ更新に強い書き方で納品します。

WAZAの有料記事のサブスクリプションも開始しました。

サービス

Service

WordPressサイトのカスタマイズのサービスに関心がありましたら、ぜひ詳細をご覧ください。

目次