اسکیمای Element Conditions (Element Conditions Schema)
title: اسکیمای Element Conditions (Element Conditions Schema) description: طرح کامل برای شرایط نمایش عناصر: کلیدهای شرط، عملگرهای مقایسه، و ساختار داده OR-of-AND.
شرایط نمایش عنصر کنترل میکند که آیا یک عنصر در قسمت جلویی نمایش داده میشود یا خیر. آنها در کلید _conditions در داخل شی settings هر عنصر ذخیره میشوند.
ساختار داده (Data structure)
شرایط از ساختار OR-of-AND استفاده میکنند: آرایه بیرونی شامل گروه های OR است و هر آرایه داخلی حاوی موارد AND است. اگر هر گروه OR به درستی ارزیابی شود، عنصر رندر میشود، و زمانی که *همه موارد AND آن درست باشد، یک گروه OR درست است.
conditionItem properties
هر مورد شرایط دارای ویژگیهای زیر است:
| ویژگی (Property) | نوع (Type) | الزامی (Required) | توضیح (Description) |
|---|---|---|---|
id |
string \ | integer | بله |
key |
string | Yes | نوع شرایط (به شماره زیر مراجعه کنید) |
compare |
string | Yes | عملگر مقایسه (به جدول زیر مراجعه کنید) |
value |
any | Conditional | ارزشی که باید با آن مقایسه کرد. هنگامیکه مقایسه empty یا empty_not است، لازم نیست. |
dynamic_data |
string | No | برچسب داده پویا برای استفاده به عنوان منبع ارزش |
مثال (Example)
{
"_conditions": [
[
{ "id": "abc123", "key": "user_logged_in", "compare": "==", "value": true },
{ "id": "def456", "key": "user_role", "compare": "==", "value": "administrator" }
],
[
{ "id": "ghi789", "key": "dynamic_data", "compare": "contains", "value": "sale", "dynamic_data": "{post_title}" }
]
]
}
این به صورت زیر است: نشان دادن عنصر اگر (کاربر وارد شده است و مدیر است) یا (عنوان پست حاوی "فروش" است).
کلیدهای شرط (Condition keys)
عمومی
- browser
- current_url
- date
- datetime
- dynamic_data
- featured_image
- operating_system
- referer
- time
- weekday
پست
- post_author
- post_date
- post_id
- post_parent
- post_status
- post_title
کاربر
- user_id
- user_logged_in
- user_registered
- user_role
ووکامرس
- woo_product_category
- woo_product_featured
- woo_product_new
- woo_product_purchased_by_user
- woo_product_rating
- woo_product_sale
- woo_product_sold_individually
- woo_product_stock_management
- woo_product_stock_quantity
- woo_product_stock_status
- woo_product_tag
- woo_product_type
عملگرهای مقایسه موجود بر اساس کلید شرط متفاوت است. به عنوان مثال، post_id از عملگرهای ریاضی (==، !=، >=، <=، >، <) پشتیبانی میکند، در حالی که user_logged_in تنها از == و != پشتیبانی میکند.
عملگرهای مقایسه (Comparison operators)
| عملگر (Operator) | توضیح (Description) |
|---|---|
== |
برابر (مقایسه آزاد، آرایه ها را از طریق تقاطع پشتیبانی میکند) |
!= |
مساوی نیست (مقایسه سست) |
>= |
بزرگتر یا مساوی |
<= |
کمتر یا مساوی |
> |
بزرگتر از |
< |
کمتر از |
contains |
رشته حاوی رشته فرعی است |
contains_not |
رشته شامل رشته فرعی نیست |
empty |
مقدار خالی است (بدون نیاز به فیلد مقدار) |
empty_not |
مقدار خالی نیست (بدون نیاز به فیلد مقدار) |
توسعه پذیری
کلیدهای شرط و عملگرهای مقایسه از طریق قلاب های PHP قابل فیلتر هستند:
bricks/conditions/groups: add custom condition groupsbricks/conditions/options: add custom condition keys with their own compare operatorsbricks/conditions/result: modify the boolean result of any individual condition evaluation
افزونه های شخص ثالث میتوانند کلیدهای شرایط اضافی را فراتر از موارد ذکر شده در بالا معرفی کنند.