как отключить отображение настраиваемого поля в шаблоне страницы? - PullRequest
0 голосов
/ 20 сентября 2019

Я создал свои настраиваемые поля с помощью кода, а затем зарегистрировал его с этим кодом:

/**
 * Content blocks for all pages
 */
$location_page = new ACF_Group_Location;
$location_page->add_rule( 'post_type', 'page');

$location_slots = new ACF_Group_Location;
$location_slots->add_rule( 'post_type', 'slots' );

$location_card = new ACF_Group_Location;
$location_card->add_rule( 'post_type', 'card' );



ACF_Group::create( 'content-blocks', __( 'Content blocks', 'dw' ) )
    ->add_location( $location_page )
    ->add_location( $location_slots )
    ->add_location( $location_card )
    ->set_attr( 'label_placement', 'top' )
    ->set_attr( 'hide_on_screen', array( 'the_content', 'comments' ) )
    ->add_fields( array(
        array(
            'label' => __( 'Content blocks', 'dw' ),
            'name' => 'cb',
            'type' => 'flexible_content',
            'button_label' => __( 'Add content block', 'dw' ),
            'layouts' => $cb
        ),
    )
)->register();

add_rule () включает в себя:

public function add_rule( $param, $value, $operator = '==' ) {
        $this->rules[] = compact( 'param', 'value', 'operator' );

        return $this;
    }

, и мой вопрос заключается в том, какой код делатьнужно добавить, если я хочу отключить их на моем шаблоне страницы?

1 Ответ

0 голосов
/ 20 сентября 2019

Таким образом, вы используете ACF программно, используя this

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

<?php
add_action( 'register_acf_groups', 'my_theme_register_acf_groups' );
function mytheme_register_acf_groups() {
    ACF_Group::create( 'my_group', 'My Group' )
        ->add_location_rule( 'post_type', 'page' )
        ->add_location_rule( 'page_template', 'template-contact.php' ) // <- see here
        ->set_attr( 'label_placement', 'left' )
        ->add_fields(array(
            array(
                'label' => 'Test Field',
                'name'  => 'test_field',
                'type'  => 'text'
            ),
        ))
        ->register();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...