Как в поле Association в Carbon Fields выводить только родительские термины или страницы

Недавно столкнулся с такой ситуацией, что использовал поле типа ассоциация association в Сarbon Fields для вывода таксономии со странами, но эта таксономия также была с иерархией с добавлением городов и города мне как раз-таки не были нужны!

Также хочу порекомендовать вам свой видеокурс по созданию темы WordPress на основе готовой HTML-вёрстки.

Короче говоря выводилось у меня вот что:

поле association в carbon fields
Сейчас выводятся и страны и их дочерние города, а по идее должны выводиться только страны

Итак, для этого в Carbon Fields есть удобный хук: carbon_fields_association_field_options_{id поля}_term_{таксономия}. При помощи него мы можем передавать любые параметры, доступные в get_terms().

Например у меня поле назвалось page_loc, тип его соответственно term (вы помните это из руководства по Carbon Fields), а таксономия называлась country, тогда хук становится таким:

add_filter( 'carbon_fields_association_field_options_page_loc_term_country', 'truemisha_only_parent_term', 25 );
 
function truemisha_only_parent_term( $args ) {
 
	$args[ 'parent' ] = 0;
	return $args;
 
}

Если вы работаете с Carbon Fields, то по-любому знаете, куда вставлять этот код, но чисто на всякий случай вот руководство.

Подобную историю можно провернуть при выводе в поле Association произвольных типов постов или страниц. Только тут уже используем параметры WP_Query.

Пример для поля page_connect типа записей page, ну вы поняли я думаю – ...ons_{id поля}_post_{тип поста}.

add_filter( 'carbon_fields_association_field_options_page_connect_post_page', 'truemisha_only_parent_page', 25 );
 
function truemisha_only_parent_page( $args ) {
 
	$args[ 'post_parent' ] = 0;
	return $args;
 
}

Источник: misha.blog

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

2 комментария к “Как в поле Association в Carbon Fields выводить только родительские термины или страницы”

  1. Доброе время суток. Миша подскажи пожалуста не могу вывести посты из таксономии вешаю на хук такую функцию
    код
    ->add_tab( ‘Подвал’, [
    Field::make( ‘text’, ‘title-cities’, ‘Заголовок’ ),
    Field::make( ‘association’, ‘cities’, ‘Города’ )
    ->set_types( [
    [
    ‘type’ => ‘post’,
    ‘post_type’ => ‘webnn_products’,

    ],
    ])
    ]);

    add_filter( ‘carbon_fields_association_field_options_cities_post_post’, ‘webnn_cities_page’, 25 );

    function webnn_cities_page( $args ) {
    $args[ ‘post_parent’ ] = 23;
    return $args;
    }

    Ответить

Добавить комментарий

%d такие блоггеры, как: