Nik Custom Fields — живе демо

Кожен тип поля, який реєструє плагін, і кожен описаний виклик — виконані просто на цій сторінці. Ліворуч: з чим працює редактор і який виклик робить шаблон. Праворуч: що цей виклик повернув.

36 типів полів зареєстровано, 36 показані на цій сторінці. Усі зареєстровані типи є на цій сторінці.

A Типи полів

По блоку на тип: що бачить редактор, виклик, результат.

textТекст

В адмінці

Однорядкове поле. Підказка, ліміт символів, значення за замовчуванням, префікс і суфікс.

У шаблоні

nik_the_field( 'd_text' );

Результат

A complete custom fields toolkit

textareaТекстова Область

В адмінці

Багаторядковий текст без розмітки. Кількість рядків — налаштування.

У шаблоні

nik_the_field( 'd_textarea' );

Результат

Plain text, kept verbatim.
Ampersands & quotes "survive" — no double escaping.

numberЧисло

В адмінці

Числове поле з мінімумом, максимумом, кроком і префіксом. Дробова частина зберігається.

У шаблоні

nik_get_field( 'd_number' );   // float
nik_the_field( 'd_number' );   // localised

Результат

19.99
19.99

rangeПовзунок

В адмінці

Повзунок із живим показом значення.

У шаблоні

nik_get_field( 'd_range' );

Результат

65

emailEmail

В адмінці

Поле для e-mail. Некоректна адреса відхиляється під час збереження.

У шаблоні

nik_the_field( 'd_email' );

Результат

urlURL

В адмінці

Поле для посилання.

У шаблоні

nik_the_field( 'd_url' );

passwordПароль

В адмінці

Прихований ввід. Зберігається як є, виводиться крапками.

У шаблоні

nik_the_field( 'd_password' );

Результат

••••••••

wysiwygФорматований текст (редактор)

The gallery below is a [gallery] shortcode typed into the editor.

В адмінці

Справжній редактор WordPress: TinyMCE, Quicktags, кнопка медіа. Шорткоди виконуються під час виводу.

У шаблоні

nik_the_field( 'd_wysiwyg' );

Результат

Rich text from the real WordPress editor — lists, links and shortcodes all work:

  • TinyMCE and Quicktags
  • Media button

selectВибір

В адмінці

Випадний список. Значення поза заданим списком не приймається.

У шаблоні

nik_get_field( 'd_select' );

Результат

live

radioРадіокнопка

В адмінці

Перемикачі.

У шаблоні

nik_get_field( 'd_radio' );

Результат

high

button_groupГрупа кнопок

В адмінці

Один вибір у вигляді ряду кнопок.

У шаблоні

nik_get_field( 'd_buttons' );

Результат

m

checkboxПрапорець

В адмінці

Одиночна галочка.

У шаблоні

nik_get_field( 'd_checkbox' );   // bool

Результат

true

true_falseТак / Ні

В адмінці

Перемикач «так/ні» зі своїм підписом.

У шаблоні

nik_get_field( 'd_truefalse' );  // bool

Результат

true

imageЗображення

В адмінці

Вибір із медіабібліотеки. Формат повернення: id, URL або повний масив.

У шаблоні

$img = nik_get_field( 'd_image' );
echo $img['sizes']['medium'];

Результат

{
    "id": 933,
    "alt": "",
    "width": 800,
    "height": 800
}

galleryГалерея

В адмінці

Кілька зображень, порядок змінюється перетягуванням.

У шаблоні

foreach ( nik_get_field( 'd_gallery' ) as $img ) {
    echo $img['sizes']['thumbnail'];
}

Результат

4 images

fileФайл

В адмінці

Будь-який файл, не лише зображення. Дозволені розширення — налаштування.

У шаблоні

nik_the_field( 'd_file' );

Результат

icon_pickerВибір значка

В адмінці

Dashicon або посилання на зображення.

У шаблоні

nik_the_field( 'd_icon' );

Результат

dashicons-star-filled

oembedoEmbed

В адмінці

Посилання на будь-який сервіс із підтримкою oEmbed; вставка розгортається під час виводу.

У шаблоні

nik_the_field( 'd_oembed' );

Результат

linkПосилання

В адмінці

Адреса, текст посилання і перемикач «відкривати в новій вкладці».

У шаблоні

nik_the_field( 'd_link' );        // <a> with rel=noopener
nik_get_field( 'd_link' );        // array

Результат

Product page
{
    "url": "https://products.nikdimon.com/products/nik-custom-fields/",
    "title": "Product page",
    "target": "_blank"
}

color_pickerКолір

В адмінці

Нативна палітра плюс поле для hex.

У шаблоні

nik_the_field( 'd_color' );

Результат

#2271b1

google_mapКарта Google

В адмінці

Широта, довгота й адреса.

У шаблоні

nik_the_field( 'd_map' );
nik_get_field( 'd_map' );

Результат

Kyiv, Ukraine
{
    "address": "Kyiv, Ukraine",
    "lat": 50.4501,
    "lng": 30.5234,
    "zoom": 14
}

date_pickerДата

В адмінці

Лише дата. Зберігається в сортованому вигляді, виводиться у форматі сайту.

У шаблоні

nik_get_field( 'd_date', false, false );  // raw
nik_the_field( 'd_date' );                // formatted

Результат

2026-08-06
д.м.р.

date_time_pickerДата й час

В адмінці

Дата разом із часом.

У шаблоні

nik_the_field( 'd_datetime' );

Результат

д.м.р. 17:30

time_pickerЧас

В адмінці

Час доби.

У шаблоні

nik_get_field( 'd_time' );

Результат

09:15:00

post_objectОб’єкт запису

В адмінці

Пошук із вибором одного запису. Нічого не вантажиться, доки не почнеш друкувати.

У шаблоні

$post = nik_get_field( 'd_postobject' );
echo $post->post_title;

Результат

WP_Post #701 Images auto convert — 1

page_linkПосилання на сторінку

В адмінці

Той самий пошук, але значенням стає постійне посилання.

У шаблоні

nik_the_field( 'd_pagelink' );

Результат

(порожньо)

relationshipЗв’язок (записи)

В адмінці

Пошук із вибором кількох записів, порядок змінюється.

У шаблоні

foreach ( nik_get_field( 'd_relationship' ) as $post ) {
    echo get_permalink( $post );
}

Результат

taxonomyЗв’язок (терміни)

В адмінці

Пошук по елементах будь-якої таксономії.

У шаблоні

nik_get_field( 'd_taxonomy' );

Результат

{
    "term_id": 1,
    "name": "Без рубрики",
    "slug": "%d0%b1%d0%b5%d0%b7-%d1%80%d1%83%d0%b1%d1%80%d0%b8%d0%ba%d0%b8",
    "term_group": 0,
    "term_taxonomy_id": 1,
    "taxonomy": "category",
    "description": "",
    "parent": 0,
    "count": 0,
    "filter": "raw"
}

userЗв’язок (користувачі)

В адмінці

Пошук по користувачах сайту.

У шаблоні

nik_get_field( 'd_user' );

Результат

{
    "id": 1,
    "login": "PaperAdmin1873",
    "display_name": "PaperAdmin1873",
    "email": "dmitrij.nikolaenko.91@gmail.com",
    "roles": [
        "administrator"
    ]
}

groupГрупа

В адмінці

Кілька полів, зібраних під одним іменем.

У шаблоні

$d = nik_get_field( 'd_group' );
echo $d['w'] . '×' . $d['h'] . ' ' . $d['u'];

Результат

{
    "w": 120,
    "h": 80,
    "u": "cm"
}

repeaterПовторювач

В адмінці

Рядки з підполів: редактор додає їх і змінює порядок.

У шаблоні

while ( nik_have_rows( 'd_specs' ) ) : nik_the_row();
    echo nik_get_row_index();
    echo nik_get_sub_field( 'name' );
    echo nik_get_sub_field( 'value' );
endwhile;

Результат

#namevalueicon
1Weight1.2
2Length48
3Volume0.75

repeaterПовторювач

The same type again, nested — this is the case most alternatives get wrong.

В адмінці

Репітер усередині репітера. Глибина вкладеності не обмежена.

У шаблоні

while ( nik_have_rows( 'd_sections' ) ) : nik_the_row();
    echo nik_get_sub_field( 'title' );

    while ( nik_have_rows( 'items' ) ) : nik_the_row();
        echo nik_get_sub_field( 'label' );
    endwhile;
endwhile;

Результат

Before release

  • ✅ Run the test suites
  • ✅ Update the changelog
  • ⬜ Tag the release

After release

  • ⬜ Publish the product page

flexibleГнучкий контент

В адмінці

Редактор обирає з іменованих макетів, у будь-якому порядку і скільки потрібно разів.

У шаблоні

while ( nik_have_rows( 'd_flex' ) ) : nik_the_row();
    if ( 'hero' === nik_get_row_layout() ) { … }
endwhile;

Результат

hero Flexible content, three layouts
quote Each row resolves against its own layout. — The documentation
columns
First cell
Second cell
Third cell

cloneКлон (перевикористати групу)

В адмінці

Поля іншої групи, перевикористані без копіювання налаштувань.

У шаблоні

$a = nik_get_field( 'd_clone' );
echo $a['street'] . ', ' . $a['city'];

Результат

Khreshchatyk 1, Kyiv 01001

{
    "street": "Khreshchatyk 1",
    "city": "Kyiv",
    "zip": "01001"
}

tabВкладка / роздільник

В адмінці

Розбиває довгу групу на вкладки в адмінці. Значення не зберігає.

У шаблоні

// nothing to read

Результат

By design: layout only

accordionАкордеон

В адмінці

Згортуваний блок в адмінці. Значення не зберігає.

У шаблоні

// nothing to read

Результат

By design: layout only

messageПовідомлення (без значення)

В адмінці

Пояснення для редактора. Значення не зберігає.

У шаблоні

// nothing to read

Результат

By design: layout only

B Умовна логіка

Правила працюють в адмінці. Приховане поле зберігає своє значення.

nik_get_field( 'd_conditional' )   // shown only while Select = live
Visible because Select is "live"

C Двобічний зв’язок

Зв’язали один бік — другий записався сам. На пов’язаній сторінці нічого не вводили.

nik_get_field( 'd_linked' )                    // here
[1835]

D Field objects and bulk reads

nik_get_field_object( 'd_select' )
{
    "key": "d_select",
    "uid": "nikf_69f0cbb6950774f9644d",
    "label": "Select",
    "name": "d_select",
    "type": "select",
    "instructions": "",
    "required": false,
    "width": 100,
    "choices": [
        "draft",
        "review",
        "live"
    ],
    "settings": null,
    "value": "live"
}
nik_get_sub_field_object( 'value' )   // inside a row
{
    "key": "value",
    "label": "Value",
    "type": "number",
    "width": 50,
    "required": 0
}
nik_get_fields()
47 fields: tab_basics, d_message, d_accordion, d_text, d_textarea, d_number, d_range, d_email, d_url, d_password, d_wysiwyg, tab_choices …

E Інші цілі

Той самий API, адресація через option / user_N / term_N.

nik_get_field( 'o_company', 'option' )
NikDimon Products
nik_get_field( 'o_logo', 'option' )
while ( nik_have_rows( 'o_socials', 'option' ) ) …
nik_get_field( 'u_job', 'user_1' )
Plugin author
nik_get_field( 'c_tagline', 'term_19' )
NULL

F Група полів, оголошена в коді

Реєструється з PHP-файлу, тому конфігурацію можна тримати в git.

nik_add_local_field_group( array(
    'key'    => 'ncf-local',
    'fields' => array( array( 'key' => 'l_badge', 'type' => 'text' ) ),
) );
nik_get_field( 'l_badge' )
Declared in PHP

G Блок Гутенберга

Блок, атрибути якого — це група полів; його шаблон читає їх тим самим API.

H Шорткоди

Для тих, хто працює в редакторі контенту, а не в шаблонах.

[nik_cf_field field="d_text"]
A complete custom fields toolkit
[nik_cf_field field="nope" default="fallback"]
fallback
[nik_cf_gallery field="d_gallery" size="thumbnail"]
[nik_cf_group group="ncf-address"]

I Вибірка за значенням поля

Значення лежать під стабільним ідентифікатором, тому nik_meta_key() перетворює знайоме ім’я поля на ключ, потрібний WP_Query.

nik_meta_key( 'd_specs', '0_name' )
_nik_cf_uid_nikf_659b3011241c91f7612f_0_name
'meta_query' => array( array(
    'key'   => nik_meta_key( 'd_specs', '0_name' ),
    'value' => 'Weight',
) )
Nik Custom Fields — живе демо
nik_meta_key( 'd_sections', '0_items_1_label' )   // any depth
Nik Custom Fields — живе демо
'meta_key' => nik_meta_key( 'd_number' ),
'orderby'  => 'meta_value_num'
Nik Custom Fields — живе демо

J REST API

Вмикається окремо для кожної групи. У цієї групи ввімкнено.

endpointwhat it does
GET /wp-json/wp/v2/pages/944core response gains a nik_fields object
GET /wp-json/nik-cf/v1/fields/page/944values in their return format
POST /wp-json/nik-cf/v1/fields/page/944write values
GET /wp-json/nik-cf/v1/field-groupsthe configuration itself
GET /wp-json/nik-cf/v1/options/ncf-demo-optionsan options page

K Форма на фронтенді

Ті самі рендерери й та сама валідація, що й у метабоксі. Показується лише тому, хто може редагувати цю сторінку.

Hidden: a front-end form needs a logged-in user with edit_post on this page. That check runs when rendering and again when accepting the submission.