SWELLの投稿リストの抜粋欄へ、カスタムフィールドに保存した読了目安時間を表示する例です。
今まで自作のブログカード等で対応してきましたが、どうしてもSWELLの投稿リストを使いたいという要望で、なんとかカスタムフィールドの値を渡せないか試してみました。
この例では手動入力の抜粋を使います。投稿リストの抜粋表示を有効にし、PC・スマホそれぞれの抜粋文字数を0より大きく設定してください。
サンプル
サンプルとして3記事だけにカスタマイズを適応しています。
本記事では投稿リストにカスタムフィールドを表示するカスタマイズを紹介します。
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向けのコード変更例を確認してください。プラグインを切り替える前に、既存データと表示をテスト環境で確認してください。

ここでは計算用の仮定を600文字/分とします。一般的な読書速度を保証する値ではなく、文章の難しさや読者、図表などで所要時間は変わります。
本文の文字数を600で割り、端数を切り上げた1以上の整数をreadtimeへ保存します。次の画像は過去の編集画面例で、文字数表示の位置は利用中の版や設定で確認してください。

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

こんな感じで必要な値をカスタムフィールドに記載します。
ちなみに記事を読む目安時間の自動化も別記事にて紹介しています。

以下は有料コンテンツです。
この記事だけ読みたい方は単品購入、ほかの有料記事も読みたい方は購読プランをご確認ください。
購読対象の記事・料金は、下のプラン案内で確認できます。
役に立った記事を、ブログやSNSで紹介しませんか?
紹介制度の対象記事・購読プランを購入した方は、codocで専用リンクと報酬条件を確認できます。
専用リンク経由で購入されると、設定された紹介報酬が発生します。
購読プランの紹介報酬は初回課金のみが対象です。
紹介時は、広告・PRであることが読者に分かるように明記してください。



