Объект Post типа поля ACF, чтобы показывать только родительские страницы верхнего уровня из пользовательского типа записи

#wordpress #advanced-custom-fields

#wordpress #дополнительно-пользовательские-поля

Вопрос:

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

В настоящее время он выводит все записи, страницы и страницы пользовательских типов записей во внешнем интерфейсе : !https://i.ibb.co/tXkxFdY/Screen-Shot-2019-04-01-at-2-50-25-PM.png

Для справки, вот как мои настройки объекта Post настраиваются в плагине ACF Pro: !https://i.ibb.co/Z6W3cjF/Screen-Shot-2019-04-01-at-2-44-24-PM.png

Я попытался использовать следующий запрос объекта ACF Post от:https://www.advancedcustomfields.com/resources/acf-fields-post_object-query /

Использование страницы ACF «acf/fields/post_object /query»https://www.advancedcustomfields.com/resources/acf-fields-post_object-query /

Я попытался использовать следующее:

 function my_relationship_query( $args, $field, $post_id ) {

    $args = array(
        'post_parent' => $post_id, // updated to use the current $post_id
        'post_type'   => 'mediakit', 
        'numberposts' => -1,
        'post_status' => 'published' 
    );

    return;

}

// filter for every field
add_filter('acf/fields/relationship/query/key=field_5ca24f099f985', 'my_relationship_query', 10, 3);
  

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

Фактические результаты показывают все записи, страницы и все страницы в пользовательском типе записи.

Любая помощь по этой проблеме будет высоко оценена.

Ответ №1:

Оказывается, я могу использовать фильтр запросов ACF для отображения родительских страниц пользовательского типа записи. Когда я захожу в поле, чтобы выбрать тип моей записи, родители отображаются только в раскрывающемся списке Post Object.

Используя это официальное руководство ACF:https://www.advancedcustomfields.com/resources/acf-fields-post_object-query /

 
add_filter('acf/fields/post_object/query/key=field_0000000000000', 'change_posts_order', 10, 3);
function change_posts_order( $args, $field, $post ) {

    $args['post_parent'] = 0;
    $args['sort_order'] = 'ASC';
    $args['orderby'] = 'title';
    $args['order'] = 'ASC';
    $args['post_status'] = 'publish';

    return $args;
}