wordpress: wp-graphql не работает с настраиваемым типом сообщения

Я создал собственный тип сообщения, который, однако, не отображается в проводнике GraphiQL.

function create_custom_visions_post_type() {
       register_post_type('visions',
                  array(
                      'labels' => array(
                        'name' => __('Visions'),
                        'singular_name' => __('Visions')
                  ),
                    'public' => true,
                    'show_in_admin_bar' => true,
                    'show_in_graphql' => true,
                    'graphql_single_name' => 'Vision',
                    'graphql_plural_name' => 'Visions',
));

}

Согласно документам wp-graphql, только флаги "show_in_graphql", "graphql_single_name" и "graphql_plural_name" необходимы для того, чтобы предоставить настраиваемый тип сообщения схеме graphql.

Что мне не хватает?

4 ответа

Убедитесь, что вы регистрируете свой CPT до того, как WPGraphQL инициализирует схему. Вы можете сделать это, введя свой регистрационный код CPT вgraphql_init такие крючки.

function create_custom_visions_post_type() {
       register_post_type('visions',
                  array(
                      'labels' => array(
                        'name' => __('Visions'),
                        'singular_name' => __('Visions')
                  ),
                    'public' => true,
                    'show_in_admin_bar' => true,
                    'show_in_graphql' => true,
                    'graphql_single_name' => 'Vision',
                    'graphql_plural_name' => 'Visions',
));
add_action( 'graphql_init', 'create_custom_visions_post_type' );

Если ваша функция для создания пользовательского типа записи выглядит хорошо, то вам может понадобиться запустить что-то большее, чем просто перезапустить проект. Документы Гэтсби говорят, что вы, возможно, захотите бежатьgatsby cleanкогда возникает «ошибка GraphQL, например, этот ресурс GraphQL должен присутствовать, но его нет».

https://www.gatsbyjs.com/docs/reference/gatsby-cli/#clean

Хорошо , дурак, я забыл добавить

{
  resolve: `gatsby-source-graphql`,
  options: {
    // This type will contain remote schema Query type
    typeName: `WPGraphQL`,
    // This is field under which it's accessible
    fieldName: `wpgraphql`,
    // Url to query from
    url: `blablabla.local/graphql`,
  },

в gatsby-config.js

теперь мой собственный тип сообщения доступен внутри wpgraphql{}

Может быть, это немного не связано, но я нашел этот пост, пытаясь выяснить, почему мой пользовательский тип сообщения, который был зарегистрирован с помощью популярного плагина «Пользовательский интерфейс пользовательского типа сообщения», не появлялся в моей схеме GraphQL. Я возился с кодом плагина и не мог понять это, пока не заметил, что на странице плагина для пользовательского интерфейса пользовательских типов сообщений есть флажок для включения включения CPT в GraphQL в нижней части страницы редактирования для каждого Пользовательский тип сообщения в CPTUI.

Другие вопросы по тегам