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 должен присутствовать, но его нет».
Хорошо , дурак, я забыл добавить
{
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.