ACFの計算フィールド | Wundermatics
ACFの計算フィールド

ACFの計算フィールド | Wundermatics

説明

高度なカスタムフィールドに数式フィールドを追加して、フィールド値に基づいて簡単な計算を実行できるようにします。計算は、バックエンドの投稿エディターとフロントエンドのフォームで投稿を編集しているときに、ajaxを介して動的に更新されます。
要件
計算フィールドには、Advanced Custom Fields 5.0以降が必要であり、Proおよび標準バージョンで動作します。
フロントエンドフォーム
バージョン1.2.3以降、ACFの計算フィールドは、acf_form()関数(高度なカスタムフィールドに組み込まれている)を使用して作成されたフロントエンドフォームをサポートします。
数式
計算フィールドは、ACFフィールドエディタに新しい設定「式」を追加します。数式は、フィールド名を使用して同じフィールドグループ内の他のフィールドを参照することをサポートしています。リピーターフィールド内のサブフィールドに数式が追加された場合、その名前は同じリピーター内の別のサブフィールドを参照します。
リピーターフィールド内のサブフィールドは、「parent。」プレフィックスを使用して親フィールドを参照することもできます。
数式には、基本的な数学演算(プラス(+)、マイナス(-)、乗算(*)、除算(/)、および(^)の累乗)を含めることができます。数式には、sin、cos、arcsin、log、ln、sqrt、absなどの関数を含めることもできます。括弧がサポートされています。
構文が無効であるか、未定義のフィールド名を参照しているために式を評価できない場合、式はサイレントにゼロを返します。
有効な式の例(注、最初に等号はありません):

fieldA * 2
fieldA * fieldB
abs(fieldA)*(2 + sqrt(fieldB))
金額* parent.price

条件演算子
式には、0または1のいずれかを返す条件式を含めることもできます。サポートされている演算子は次のとおりです。

等しい(==)– 2つの値が等しい場合は1を返し、そうでない場合は0を返します。
等しくない(!=)– 2つの値が等しくない場合は1を返し、そうでない場合は0を返します。
大なり記号(>)–最初のオペランドが2番目のオペランドより大きい場合は1を返し、それ以外の場合は0を返します。
より大きいか等しい(> =)–最初のオペランドが2番目のオペランド以上の場合は1を返し、それ以外の場合は0を返します。
より小さい(<)–最初のオペランドが2番目のオペランドよりも小さい場合は1を返し、それ以外の場合は0を返します。
以下(<=)–最初のオペランドが2番目のオペランド以下の場合は1を返し、それ以外の場合は0を返します。 条件演算子を使用した有効な式の例: 10 == 10(1を返します)
10 == 2(0を返します)
10> 2(1を返します)
10 <2(0を返します)
10 <= 10(1を返します) 丸め関数
10進値を最も近い整数に丸めます。サポートされている機能は次のとおりです。

round()–標準の数学的丸め規則を使用して最も近い整数に丸めます
ceil()–値を次に大きい整数に丸めます
floor()–値を次に低い整数に丸めます

丸め関数を使用した有効な式の例:

round(10.2)(10を返します)
round(10.9)(11を返します)
ラウンド(10.888888 * 10)/ 10(10.9を返す)
ceil(10.2)(11を返します)
フロア(10.2)(10を返す)

round()関数は1つのパラメーターのみを取り、常に整数に丸めることに注意してください。より高い精度に丸める必要がある場合は、上記の3番目の例に示すように乗算と除算を行います。
グループフィールド(1.2.4からの新機能)
グループの一部として定義されたフィールドであるサブフィールドは、グループ名をプレフィックスとして使用してアドレス指定できます。グループ内では、親レベルで定義されたフィールドは、「親」プレフィックスを使用してアドレス指定できます。以下の例を参照してください。
グループ「group2」内で定義されたフィールド「foobar」の値を使用するための有効な式:
* group2.foobar + 10
グループ内のフィールドの有効な数式(親にcountという名前のフィールドがあると仮定):
* parent.count * 22
リピーターフィールドの配列関数
リピーターフィールドが使用されている場合、親フィールドグループの計算フィールドは、集計関数sum、count、average、min、またはmaxを使用して、特定のリピーターサブフィールドを要約できます。たとえば、「Sum(orderlines.amount)」という式は、リピーターフィールド「orderlines」のすべての「amount」フィールドの合計を返します。
使用可能な配列関数は次のとおりです。

和()
平均()
カウント()
min()
max()

集計式のドット(。)の後は、それ自体が式であることに注意してください。 「Sum(orderlines.price * amount)」のような数式を記述してもまったく問題ありません。この式は、「orderlines」リピーターフィールドのすべての行を調べ、「price * amount」の計算を実行して、すべての行の合計を返します。
集計関数を使用する場合、括弧は使用できないことに注意してください。より複雑な計算を集計する必要がある場合は、リピーターグループにフィールドを追加し、集計関数がこの追加のフィールドで機能するようにする必要があります。
データ型と計算順序
計算フィールドは、すべてのフィールドがACFエディターで数値として定義されていることを前提として機能します。数式でテキストフィールドを使用すると、予測できない結果が生成されます。
カスタムフィールドがデータベースに保存されるときに計算が行われます。パフォーマンスの影響を最小限に抑えるために、計算フィールドはフィールドの順序に依存しています。数式フィールドは、それ自体の前に順序付けられたフィールドのみを参照できます。後に順序付けられたフィールドを参照する数式フィールドは、予測できない結果を生成します。

インストール

最小要件

PHP7.3以降

計算フィールドはPHP5.6以降で実行されるACF用ですが、現在PHP7.3を推奨している公式のWordPressガイドラインに従うことを強くお勧めします。
WordPress内から

インストール

ダッシュボード内のプラグインページにアクセスし、[新規追加]を選択します
「ACFの計算フィールド」を検索します
[

インストール

]をクリックして、ボタンのキャプションが[アクティブ化]に変わるまで待ちます
[アクティブ化]をクリックします

手動で

インストール

zipファイルをダウンロードします
計算されたfields-for-acfフォルダーをzipからサーバーの/ wp-content / plugins /ディレクトリーにアップロードします。
WordPress管理者のプラグインページに移動し、プラグインを見つけます
[アクティブ化]をクリックします

プラグインの作者

Wundermatics

プラグインの公式ウェブサイトアドレス

https://wordpress.org/plugins/calculated-fields-for-acf/
ACFの計算フィールドプラグインの使用で問題が発生した場合は、以下にコメントしてください。問題の解決に最善を尽くします

コメントを残す