Как настроить страницу местоположения в WordPress с использованием Advanced Custom Fields (ACF)?

Здравствуйте! У меня возник вопрос по поводу настройки отображения метабоксов в ACF (Advanced Custom Fields) в админке. Я знаю, что можно указать параметр <i>Show this field group if</i>, чтобы отобразить метабоксы только на определённой странице, например, "О нас". Однако, если я использую код, чтобы задать это условие, например:

<pre><code class="php">'location' =&gt; array (
                array (
                    array (
                        'param' =&gt; 'post_type',
                        'operator' =&gt; '==',
                        'value' =&gt; 'page',
                    ),
                ),
            ),</code></pre>

то он срабатывает на всех страницах. Также можно настроить метабокс для главной страницы, используя:

<pre><code class="php">'location' =&gt; array (
                array (
                    array (
                        'param' =&gt; 'page_type',
                        'operator' =&gt; '==',
                        'value' =&gt; 'front_page',
                    ),
                ),
            ),</code></pre>

Но я не могу понять, как задать конкретную страницу, к которой привязать метабокс. Можете, пожалуйста, объяснить, как это сделать? Вот пример кода, который я использую:

<pre><code class="php">&lt;?php
acf_add_local_field_group(array (
    'key' =&gt; 'group_1',
    'title' =&gt; 'My Group',
    'fields' =&gt; array (
        array (
            'key' =&gt; 'field_1',
            'label' =&gt; 'Sub Title',
            'name' =&gt; 'sub_title',
            'type' =&gt; 'text',
            'prefix' =&gt; '',
            'instructions' =&gt; '',
            'required' =&gt; 0,
            'conditional_logic' =&gt; 0,
            'wrapper' =&gt; array (
                'width' =&gt; '',
                'class' =&gt; '',
                'id' =&gt; '',
                ...
</code></pre>
  • 11 ноября 2024 г. 16:53
Ответы на вопрос 2
Чтобы настроить отображение метабокса ACF (Advanced Custom Fields) только на конкретной странице в WordPress, вам нужно использовать параметр `'page'` для условия, связанного с локализацией метабокса. Исправьте свой код следующим образом:

1. Установите в параметре `'param'` значение `'page'`, чтобы указать, что вы хотите ограничить метабокс определённой страницей.
2. Используйте `'operator'` для сравнения с `'=='`, а в качестве `'value'` передайте ID нужной страницы.

Вот пример того, как вы можете настроить метабокс:

```php
<?php
acf_add_local_field_group(array (
    'key' => 'group_1',
    'title' => 'My Group',
    'fields' => array (
        array (
            'key' => 'field_1',
            'label' => 'Sub Title',
            'name' => 'sub_title',
            'type' => 'text',
            'instructions' => '',
            'required' => 0,
            'conditional_logic' => 0,
            'wrapper' => array (
                'width' => '',
                'class' => '',
                'id' => '',
            ),
        ),
    ),
    'location' => array (
        array (
            array (
                'param' => 'page',
                'operator' => '==',
                'value' => '123', // Замените 123 на ID вашей страницы
            ),
        ),
    ),
));
?>
```

### Как узнать ID страницы
1. Перейдите в админку WordPress.
2. Найдите свою страницу в разделе «Страницы» и наведите курсор на название страницы.
3. Внизу браузера вы увидите URL с параметром `post=`. Это и есть ID вашей страницы.

### Примечание
Если вы хотите активировать метабокс для нескольких страниц, просто добавьте дополнительные массивы в `'location'`:

```php
'location' => array (
    array (
        array (
            'param' => 'page',
            'operator' => '==',
            'value' => '123', // ID первой страницы
        ),
    ),
    array (
        array (
            'param' => 'page',
            'operator' => '==',
            'value' => '456', // ID второй страницы
        ),
    ),
),
```

Таким образом, метабокс будет показан только на указанных страницах.
Если у тебя acf pro, то я раньше подглядывал таким образом: создаешь через интерфейс плагина нужное поле с нужными условиями, а потом на вкладке tools конвертируешь в php код и там вытаскиваешь нужное
Похожие вопросы