refactor: breadcrumbs stuff

This commit is contained in:
2025-09-16 13:51:03 -04:00
parent 4cff390f41
commit 3d1e311fef
6 changed files with 91 additions and 97 deletions

View File

@@ -4,7 +4,7 @@ query nodeByUri($uri: String!) {
id id
breadcrumbs { breadcrumbs {
label label
uri to
} }
... on Page { ... on Page {
...ThePage ...ThePage

View File

@@ -17,11 +17,6 @@ import {
TheResource, TheResource,
} from "#components"; } from "#components";
interface BreadcrumbItem {
label: string;
to?: string;
}
export async function useNodeByUri() { export async function useNodeByUri() {
const route = useRoute(); const route = useRoute();
const uri = computed(() => route.path); const uri = computed(() => route.path);
@@ -30,18 +25,7 @@ export async function useNodeByUri() {
throw createError({ statusCode: 500, message: "Erreur lors de la récupération du contenu", fatal: true }); throw createError({ statusCode: 500, message: "Erreur lors de la récupération du contenu", fatal: true });
} }
const node = data.value?.data.nodeByUri; const node = data.value?.data.nodeByUri;
const breadcrumbs = node?.breadcrumbs?.map(({ label, to }) => ({ label, to: to || undefined })) || [];
const breadcrumbs: BreadcrumbItem[] = [];
if (node?.breadcrumbs) {
breadcrumbs.push(
...node.breadcrumbs
.filter((item: any) => item.label)
.map((item: any) => ({
label: item.label,
to: item.uri || undefined,
})),
);
}
switch (node?.__typename) { switch (node?.__typename) {
case "Page": case "Page":

View File

@@ -22,7 +22,7 @@ require_once __DIR__ . '/includes/taxonomies/resource-category.php';
// Forms // Forms
// GraphQL // WPGraphQL
require_once __DIR__ . '/includes/graphql/address.php'; require_once __DIR__ . '/includes/graphql/address.php';
require_once __DIR__ . '/includes/graphql/breadcrumbs.php'; require_once __DIR__ . '/includes/graphql/breadcrumbs.php';
require_once __DIR__ . '/includes/graphql/user-switching.php'; require_once __DIR__ . '/includes/graphql/user-switching.php';
@@ -35,5 +35,6 @@ require_once __DIR__ . '/includes/graphql/user-switching.php';
// Vendors // Vendors
require_once __DIR__ . '/includes/vendors/acf.php'; require_once __DIR__ . '/includes/vendors/acf.php';
require_once __DIR__ . '/includes/vendors/wpgraphql.php';
// Widgets // Widgets

View File

@@ -12,9 +12,9 @@ function ccat_register_breadcrumb_graphql_types() {
'type' => array( 'non_null' => 'String' ), 'type' => array( 'non_null' => 'String' ),
'description' => 'The display label for the breadcrumb', 'description' => 'The display label for the breadcrumb',
), ),
'uri' => array( 'to' => array(
'type' => 'String', 'type' => 'String',
'description' => 'The URI for the breadcrumb link (null for current page)', 'description' => 'The to for the breadcrumb link (null for current page)',
), ),
), ),
) )
@@ -28,10 +28,20 @@ function ccat_register_breadcrumb_graphql_fields() {
'Node', 'Node',
'breadcrumbs', 'breadcrumbs',
array( array(
'type' => array( 'list_of' => 'BreadcrumbItem' ), 'type' => array(
'list_of' => array( 'non_null' => 'BreadcrumbItem' ),
),
'description' => 'Breadcrumb navigation items for this content', 'description' => 'Breadcrumb navigation items for this content',
'resolve' => function ( $node ) { 'resolve' => function ( $node ) {
return ccat_get_breadcrumbs( $node ); return array_map(
function ( $item ) {
return array(
'label' => html_entity_decode( $item['label'], ENT_QUOTES, 'UTF-8' ),
'to' => $item['to'] ?? null,
);
},
ccat_get_breadcrumbs( $node )
);
}, },
) )
); );
@@ -43,15 +53,13 @@ function ccat_get_breadcrumbs( $node ) {
if ( ! $node ) { if ( ! $node ) {
return $breadcrumbs; return $breadcrumbs;
} }
// Handle WPGraphQL Model objects
if ( $node instanceof \WPGraphQL\Model\Post ) { if ( $node instanceof \WPGraphQL\Model\Post ) {
$post = get_post( $node->databaseId ); $post = get_post( $node->databaseId );
if ( $post ) { if ( $post ) {
$breadcrumbs = ccat_get_post_breadcrumbs( $post ); $breadcrumbs = ccat_get_post_breadcrumbs( $post );
$breadcrumbs[] = array( $breadcrumbs[] = array(
'label' => html_entity_decode( get_the_title( $post->ID ), ENT_QUOTES, 'UTF-8' ), 'label' => get_the_title( $post->ID ),
'uri' => null, 'to' => null,
); );
} }
} elseif ( $node instanceof \WPGraphQL\Model\Term ) { } elseif ( $node instanceof \WPGraphQL\Model\Term ) {
@@ -59,8 +67,8 @@ function ccat_get_breadcrumbs( $node ) {
if ( $term && ! is_wp_error( $term ) ) { if ( $term && ! is_wp_error( $term ) ) {
$breadcrumbs = ccat_get_term_breadcrumbs( $term ); $breadcrumbs = ccat_get_term_breadcrumbs( $term );
$breadcrumbs[] = array( $breadcrumbs[] = array(
'label' => html_entity_decode( $term->name, ENT_QUOTES, 'UTF-8' ), 'label' => $term->name,
'uri' => null, 'to' => null,
); );
} }
} }
@@ -68,15 +76,15 @@ function ccat_get_breadcrumbs( $node ) {
} }
// Helper: Get breadcrumbs for a given post // Helper: Get breadcrumbs for a given post
function ccat_get_post_breadcrumbs( $post ) { function ccat_get_post_breadcrumbs( WP_Post $post ) {
$breadcrumbs = array(); $breadcrumbs = array();
$is_front_page = get_option( 'show_on_front' ) === 'page' && get_option( 'page_on_front' ) == $post->ID; $is_front_page = get_option( 'show_on_front' ) === 'page' && get_option( 'page_on_front' ) === $post->ID;
if ( $is_front_page ) { if ( $is_front_page ) {
return $breadcrumbs; // No breadcrumbs for the front page return $breadcrumbs; // No breadcrumbs for the front page
} else { } else {
$breadcrumbs[] = array( $breadcrumbs[] = array(
'label' => 'Accueil', 'label' => 'Accueil',
'uri' => '/', 'to' => '/',
); );
} }
$post_type = get_post_type( $post->ID ); $post_type = get_post_type( $post->ID );
@@ -87,8 +95,8 @@ function ccat_get_post_breadcrumbs( $post ) {
$ancestors = array_reverse( $ancestors ); $ancestors = array_reverse( $ancestors );
foreach ( $ancestors as $ancestor_id ) { foreach ( $ancestors as $ancestor_id ) {
$breadcrumbs[] = array( $breadcrumbs[] = array(
'label' => html_entity_decode( get_the_title( $ancestor_id ), ENT_QUOTES, 'UTF-8' ), 'label' => get_the_title( $ancestor_id ),
'uri' => str_replace( home_url(), '', get_permalink( $ancestor_id ) ), 'to' => str_replace( home_url(), '', get_permalink( $ancestor_id ) ),
); );
} }
} }
@@ -97,42 +105,42 @@ function ccat_get_post_breadcrumbs( $post ) {
case 'post': case 'post':
$breadcrumbs[] = array( $breadcrumbs[] = array(
'label' => 'Actualités', 'label' => 'Actualités',
'uri' => '/actualites/', 'to' => '/actualites/',
); );
break; break;
case 'event': case 'event':
$breadcrumbs[] = array( $breadcrumbs[] = array(
'label' => 'Événements', 'label' => 'Événements',
'uri' => '/evenements/', 'to' => '/evenements/',
); );
break; break;
case 'location': case 'location':
$breadcrumbs[] = array( $breadcrumbs[] = array(
'label' => 'Lieux', 'label' => 'Lieux',
'uri' => '/lieux/', 'to' => '/lieux/',
); );
break; break;
case 'membership': case 'membership':
$breadcrumbs[] = array( $breadcrumbs[] = array(
'label' => 'Membres', 'label' => 'Membres',
'uri' => '/membres/', 'to' => '/membres/',
); );
break; break;
case 'project': case 'project':
$breadcrumbs[] = array( $breadcrumbs[] = array(
'label' => 'Projets', 'label' => 'Projets',
'uri' => '/projets/', 'to' => '/projets/',
); );
break; break;
case 'resource': case 'resource':
$breadcrumbs[] = array( $breadcrumbs[] = array(
'label' => 'Ressources', 'label' => 'Ressources',
'uri' => '/ressources/', 'to' => '/ressources/',
); );
break; break;
} }
@@ -141,7 +149,7 @@ function ccat_get_post_breadcrumbs( $post ) {
} }
// Helper: Get breadcrumbs for a given term // Helper: Get breadcrumbs for a given term
function ccat_get_term_breadcrumbs( $term ) { function ccat_get_term_breadcrumbs( WP_Term $term ) {
$breadcrumbs = array(); $breadcrumbs = array();
$taxonomy = $term->taxonomy; $taxonomy = $term->taxonomy;
if ( $term->parent ) { if ( $term->parent ) {
@@ -152,8 +160,8 @@ function ccat_get_term_breadcrumbs( $term ) {
$ancestor_term = get_term( $ancestor_id, $taxonomy ); $ancestor_term = get_term( $ancestor_id, $taxonomy );
if ( $ancestor_term && ! is_wp_error( $ancestor_term ) ) { if ( $ancestor_term && ! is_wp_error( $ancestor_term ) ) {
$breadcrumbs[] = array( $breadcrumbs[] = array(
'label' => html_entity_decode( $ancestor_term->name, ENT_QUOTES, 'UTF-8' ), 'label' => $ancestor_term->name,
'uri' => str_replace( home_url(), '', get_term_link( $ancestor_term ) ), 'to' => str_replace( home_url(), '', get_term_link( $ancestor_term ) ),
); );
} }
} }
@@ -165,7 +173,7 @@ function ccat_get_term_breadcrumbs( $term ) {
array( array(
array( array(
'label' => 'Catégories', 'label' => 'Catégories',
'uri' => '/categories/', 'to' => '/categories/',
), ),
), ),
$breadcrumbs $breadcrumbs
@@ -177,7 +185,7 @@ function ccat_get_term_breadcrumbs( $term ) {
array( array(
array( array(
'label' => 'Disciplines', 'label' => 'Disciplines',
'uri' => '/disciplines/', 'to' => '/disciplines/',
), ),
), ),
$breadcrumbs $breadcrumbs
@@ -189,7 +197,7 @@ function ccat_get_term_breadcrumbs( $term ) {
array( array(
array( array(
'label' => 'Catégories de projets', 'label' => 'Catégories de projets',
'uri' => '/categories-projets/', 'to' => '/categories-projets/',
), ),
), ),
$breadcrumbs $breadcrumbs
@@ -201,7 +209,7 @@ function ccat_get_term_breadcrumbs( $term ) {
array( array(
array( array(
'label' => 'Catégories de ressources', 'label' => 'Catégories de ressources',
'uri' => '/categories-ressources/', 'to' => '/categories-ressources/',
), ),
), ),
$breadcrumbs $breadcrumbs

View File

@@ -0,0 +1 @@
<?php

View File

@@ -210,7 +210,7 @@ type AcfMediaItemConnectionEdge implements Edge & MediaItemConnectionEdge & OneT
"""Options Page registered by ACF""" """Options Page registered by ACF"""
interface AcfOptionsPage implements Node { interface AcfOptionsPage implements Node {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The globally unique ID for the object""" """The globally unique ID for the object"""
id: ID! id: ID!
@@ -373,8 +373,8 @@ type BreadcrumbItem {
"""The display label for the breadcrumb""" """The display label for the breadcrumb"""
label: String! label: String!
"""The URI for the breadcrumb link (null for current page)""" """The to for the breadcrumb link (null for current page)"""
uri: String to: String
} }
""" """
@@ -403,7 +403,7 @@ type Category implements DatabaseIdentifier & HierarchicalNode & HierarchicalTer
): CategoryToAncestorsCategoryConnection ): CategoryToAncestorsCategoryConnection
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The id field matches the WP_Post-&gt;ID field.""" """The id field matches the WP_Post-&gt;ID field."""
categoryId: Int @deprecated(reason: "Deprecated in favor of databaseId") categoryId: Int @deprecated(reason: "Deprecated in favor of databaseId")
@@ -1093,7 +1093,7 @@ type Comment implements DatabaseIdentifier & Node & UniformResourceIdentifiable
authorIp: String @deprecated(reason: "Use the ipAddress field on the edge between the comment and author") authorIp: String @deprecated(reason: "Use the ipAddress field on the edge between the comment and author")
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""ID for the comment, unique among comments.""" """ID for the comment, unique among comments."""
commentId: Int @deprecated(reason: "Deprecated in favor of databaseId") commentId: Int @deprecated(reason: "Deprecated in favor of databaseId")
@@ -1222,7 +1222,7 @@ type CommentAuthor implements Commenter & DatabaseIdentifier & Node {
): Avatar ): Avatar
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The unique identifier stored in the database""" """The unique identifier stored in the database"""
databaseId: Int! databaseId: Int!
@@ -1610,7 +1610,7 @@ interface Commenter implements DatabaseIdentifier & Node {
avatar: Avatar avatar: Avatar
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Identifies the primary key from the database.""" """Identifies the primary key from the database."""
databaseId: Int! databaseId: Int!
@@ -1722,7 +1722,7 @@ Base interface for content objects like posts, pages, and media items. Provides
""" """
interface ContentNode implements Node & UniformResourceIdentifiable { interface ContentNode implements Node & UniformResourceIdentifiable {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Connection between the ContentNode type and the ContentType type""" """Connection between the ContentNode type and the ContentType type"""
contentType: ContentNodeToContentTypeConnectionEdge contentType: ContentNodeToContentTypeConnectionEdge
@@ -2041,7 +2041,7 @@ interface ContentTemplate {
"""An Post Type object""" """An Post Type object"""
type ContentType implements Node & UniformResourceIdentifiable { type ContentType implements Node & UniformResourceIdentifiable {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Whether this content type should can be exported.""" """Whether this content type should can be exported."""
canExport: Boolean canExport: Boolean
@@ -2509,7 +2509,7 @@ type Contributor implements ContentNode & DatabaseIdentifier & HierarchicalConte
authorId: ID authorId: ID
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
""" """
Connection between the HierarchicalContentNode type and the ContentNode type Connection between the HierarchicalContentNode type and the ContentNode type
@@ -4817,7 +4817,7 @@ type Discipline implements DatabaseIdentifier & HierarchicalNode & HierarchicalT
): DisciplineToAncestorsDisciplineConnection ): DisciplineToAncestorsDisciplineConnection
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Connection between the Discipline type and its children Disciplines.""" """Connection between the Discipline type and its children Disciplines."""
children( children(
@@ -5655,7 +5655,7 @@ type EnqueuedScript implements EnqueuedAsset & Node {
before: [String] before: [String]
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
""" """
The HTML conditional comment for the enqueued asset. E.g. IE 6, lte IE 7, etc The HTML conditional comment for the enqueued asset. E.g. IE 6, lte IE 7, etc
@@ -5751,7 +5751,7 @@ type EnqueuedStylesheet implements EnqueuedAsset & Node {
before: [String] before: [String]
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
""" """
The HTML conditional comment for the enqueued asset. E.g. IE 6, lte IE 7, etc The HTML conditional comment for the enqueued asset. E.g. IE 6, lte IE 7, etc
@@ -5875,7 +5875,7 @@ type Event implements ContentNode & DatabaseIdentifier & HierarchicalContentNode
): HierarchicalContentNodeToContentNodeAncestorsConnection ): HierarchicalContentNodeToContentNodeAncestorsConnection
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
""" """
Connection between the HierarchicalContentNode type and the ContentNode type Connection between the HierarchicalContentNode type and the ContentNode type
@@ -8754,7 +8754,7 @@ interface HierarchicalContentNode implements ContentNode & DatabaseIdentifier &
): HierarchicalContentNodeToContentNodeAncestorsConnection ): HierarchicalContentNodeToContentNodeAncestorsConnection
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
""" """
Connection between the HierarchicalContentNode type and the ContentNode type Connection between the HierarchicalContentNode type and the ContentNode type
@@ -9149,7 +9149,7 @@ Content that can exist in a parent-child structure. Provides fields for navigati
""" """
interface HierarchicalNode implements DatabaseIdentifier & Node { interface HierarchicalNode implements DatabaseIdentifier & Node {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The unique identifier stored in the database""" """The unique identifier stored in the database"""
databaseId: Int! databaseId: Int!
@@ -9167,7 +9167,7 @@ interface HierarchicalNode implements DatabaseIdentifier & Node {
"""Term node with hierarchical (parent/child) relationships""" """Term node with hierarchical (parent/child) relationships"""
interface HierarchicalTermNode implements DatabaseIdentifier & HierarchicalNode & Node & TermNode & UniformResourceIdentifiable { interface HierarchicalTermNode implements DatabaseIdentifier & HierarchicalNode & Node & TermNode & UniformResourceIdentifiable {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The number of objects connected to the object""" """The number of objects connected to the object"""
count: Int count: Int
@@ -9292,7 +9292,7 @@ type Location implements ContentNode & DatabaseIdentifier & HierarchicalContentN
): HierarchicalContentNodeToContentNodeAncestorsConnection ): HierarchicalContentNodeToContentNodeAncestorsConnection
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
""" """
Connection between the HierarchicalContentNode type and the ContentNode type Connection between the HierarchicalContentNode type and the ContentNode type
@@ -9801,7 +9801,7 @@ type MediaItem implements ContentNode & DatabaseIdentifier & HierarchicalContent
authorId: ID authorId: ID
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The caption for the resource""" """The caption for the resource"""
caption( caption(
@@ -10260,7 +10260,7 @@ type Membership implements ContentNode & DatabaseIdentifier & Node & NodeWithAut
authorId: ID authorId: ID
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Connection between the ContentNode type and the ContentType type""" """Connection between the ContentNode type and the ContentType type"""
contentType: ContentNodeToContentTypeConnectionEdge contentType: ContentNodeToContentTypeConnectionEdge
@@ -10705,7 +10705,7 @@ Collections of navigation links. Menus can be assigned to designated locations a
""" """
type Menu implements DatabaseIdentifier & Node { type Menu implements DatabaseIdentifier & Node {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The number of items in the menu""" """The number of items in the menu"""
count: Int count: Int
@@ -10805,7 +10805,7 @@ Navigation menu items are the individual items assigned to a menu. These are ren
""" """
type MenuItem implements DatabaseIdentifier & Node { type MenuItem implements DatabaseIdentifier & Node {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Connection between the MenuItem type and the MenuItem type""" """Connection between the MenuItem type and the MenuItem type"""
childItems( childItems(
@@ -10943,7 +10943,7 @@ Content that can be referenced by navigation menu items. Provides the essential
""" """
interface MenuItemLinkable implements DatabaseIdentifier & Node & UniformResourceIdentifiable { interface MenuItemLinkable implements DatabaseIdentifier & Node & UniformResourceIdentifiable {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The unique identifier stored in the database""" """The unique identifier stored in the database"""
databaseId: Int! databaseId: Int!
@@ -11463,7 +11463,7 @@ An object with a globally unique identifier. All objects that can be identified
""" """
interface Node { interface Node {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The globally unique ID for the object""" """The globally unique ID for the object"""
id: ID! id: ID!
@@ -11483,7 +11483,7 @@ interface NodeWithAuthor implements Node {
authorId: ID authorId: ID
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The globally unique ID for the object""" """The globally unique ID for the object"""
id: ID! id: ID!
@@ -11505,7 +11505,7 @@ Content that has a main body field which can contain formatted text and media. P
""" """
interface NodeWithContentEditor implements Node { interface NodeWithContentEditor implements Node {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The content of the post.""" """The content of the post."""
content( content(
@@ -11522,7 +11522,7 @@ A node which provides an excerpt field, which is a condensed summary of the main
""" """
interface NodeWithExcerpt implements Node { interface NodeWithExcerpt implements Node {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The excerpt of the post.""" """The excerpt of the post."""
excerpt( excerpt(
@@ -11539,7 +11539,7 @@ Content that can have a primary image attached. This image is typically used for
""" """
interface NodeWithFeaturedImage implements Node { interface NodeWithFeaturedImage implements Node {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
""" """
Connection between the NodeWithFeaturedImage type and the MediaItem type Connection between the NodeWithFeaturedImage type and the MediaItem type
@@ -11576,7 +11576,7 @@ Content that supports ordering metadata. Includes a menu order field which can b
""" """
interface NodeWithPageAttributes implements Node { interface NodeWithPageAttributes implements Node {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The globally unique ID for the object""" """The globally unique ID for the object"""
id: ID! id: ID!
@@ -11592,7 +11592,7 @@ Content that maintains a history of changes. Provides access to previous version
""" """
interface NodeWithRevisions implements Node { interface NodeWithRevisions implements Node {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The globally unique ID for the object""" """The globally unique ID for the object"""
id: ID! id: ID!
@@ -11622,7 +11622,7 @@ Content that provides template metadata. The template can help inform how the co
""" """
interface NodeWithTemplate implements Node { interface NodeWithTemplate implements Node {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The globally unique ID for the object""" """The globally unique ID for the object"""
id: ID! id: ID!
@@ -11636,7 +11636,7 @@ Content with a dedicated title field. The title typically serves as the main hea
""" """
interface NodeWithTitle implements Node { interface NodeWithTitle implements Node {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The globally unique ID for the object""" """The globally unique ID for the object"""
id: ID! id: ID!
@@ -11716,7 +11716,7 @@ type Page implements ContentNode & DatabaseIdentifier & HierarchicalContentNode
authorId: ID authorId: ID
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
""" """
Connection between the HierarchicalContentNode type and the ContentNode type Connection between the HierarchicalContentNode type and the ContentNode type
@@ -12172,7 +12172,7 @@ type Plugin implements Node {
authorUri: String authorUri: String
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Description of the plugin.""" """Description of the plugin."""
description: String description: String
@@ -12303,7 +12303,7 @@ type Post implements ContentNode & DatabaseIdentifier & MenuItemLinkable & Node
authorId: ID authorId: ID
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Connection between the Post type and the category type""" """Connection between the Post type and the category type"""
categories( categories(
@@ -12696,7 +12696,7 @@ A standardized classification system for content presentation styles. These form
""" """
type PostFormat implements DatabaseIdentifier & Node & TermNode & UniformResourceIdentifiable { type PostFormat implements DatabaseIdentifier & Node & TermNode & UniformResourceIdentifiable {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Connection between the PostFormat type and the ContentNode type""" """Connection between the PostFormat type and the ContentNode type"""
contentNodes( contentNodes(
@@ -14186,7 +14186,7 @@ type Project implements ContentNode & DatabaseIdentifier & MenuItemLinkable & No
): ProjectToProjectConnection @deprecated(reason: "This content type is not hierarchical and typically will not have ancestors") ): ProjectToProjectConnection @deprecated(reason: "This content type is not hierarchical and typically will not have ancestors")
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Connection between the ContentNode type and the ContentType type""" """Connection between the ContentNode type and the ContentType type"""
contentType: ContentNodeToContentTypeConnectionEdge contentType: ContentNodeToContentTypeConnectionEdge
@@ -14442,7 +14442,7 @@ type Project implements ContentNode & DatabaseIdentifier & MenuItemLinkable & No
"""The ProjectCategory type""" """The ProjectCategory type"""
type ProjectCategory implements DatabaseIdentifier & Node & TermNode & UniformResourceIdentifiable { type ProjectCategory implements DatabaseIdentifier & Node & TermNode & UniformResourceIdentifiable {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Connection between the ProjectCategory type and the ContentNode type""" """Connection between the ProjectCategory type and the ContentNode type"""
contentNodes( contentNodes(
@@ -15521,7 +15521,7 @@ type Representation implements ContentNode & DatabaseIdentifier & Node & NodeWit
): RepresentationToRepresentationConnection @deprecated(reason: "This content type is not hierarchical and typically will not have ancestors") ): RepresentationToRepresentationConnection @deprecated(reason: "This content type is not hierarchical and typically will not have ancestors")
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Connection between the ContentNode type and the ContentType type""" """Connection between the ContentNode type and the ContentType type"""
contentType: ContentNodeToContentTypeConnectionEdge contentType: ContentNodeToContentTypeConnectionEdge
@@ -15984,7 +15984,7 @@ type Resource implements ContentNode & DatabaseIdentifier & Node & NodeWithExcer
): ResourceToResourceConnection @deprecated(reason: "This content type is not hierarchical and typically will not have ancestors") ): ResourceToResourceConnection @deprecated(reason: "This content type is not hierarchical and typically will not have ancestors")
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Connection between the ContentNode type and the ContentType type""" """Connection between the ContentNode type and the ContentType type"""
contentType: ContentNodeToContentTypeConnectionEdge contentType: ContentNodeToContentTypeConnectionEdge
@@ -16240,7 +16240,7 @@ type Resource implements ContentNode & DatabaseIdentifier & Node & NodeWithExcer
"""The ResourceCategory type""" """The ResourceCategory type"""
type ResourceCategory implements DatabaseIdentifier & Node & TermNode & UniformResourceIdentifiable { type ResourceCategory implements DatabaseIdentifier & Node & TermNode & UniformResourceIdentifiable {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Connection between the ResourceCategory type and the ContentNode type""" """Connection between the ResourceCategory type and the ContentNode type"""
contentNodes( contentNodes(
@@ -21765,7 +21765,7 @@ type Settings {
type SiteOptions implements AcfOptionsPage & Node & WithAcfGroupCcat { type SiteOptions implements AcfOptionsPage & Node & WithAcfGroupCcat {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Fields of the GroupCcat ACF Field Group""" """Fields of the GroupCcat ACF Field Group"""
groupCcat: GroupCcat groupCcat: GroupCcat
@@ -21788,7 +21788,7 @@ A taxonomy term used to organize and classify content. Tags do not have a hierar
""" """
type Tag implements DatabaseIdentifier & MenuItemLinkable & Node & TermNode & UniformResourceIdentifiable { type Tag implements DatabaseIdentifier & MenuItemLinkable & Node & TermNode & UniformResourceIdentifiable {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Connection between the Tag type and the ContentNode type""" """Connection between the Tag type and the ContentNode type"""
contentNodes( contentNodes(
@@ -22255,7 +22255,7 @@ type TagToTaxonomyConnectionEdge implements Edge & OneToOneConnection & Taxonomy
"""A taxonomy object""" """A taxonomy object"""
type Taxonomy implements Node { type Taxonomy implements Node {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""List of Content Types associated with the Taxonomy""" """List of Content Types associated with the Taxonomy"""
connectedContentTypes( connectedContentTypes(
@@ -22545,7 +22545,7 @@ type Template implements ContentNode & DatabaseIdentifier & Node & NodeWithRevis
): TemplateToTemplateConnection @deprecated(reason: "This content type is not hierarchical and typically will not have ancestors") ): TemplateToTemplateConnection @deprecated(reason: "This content type is not hierarchical and typically will not have ancestors")
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""Connection between the ContentNode type and the ContentType type""" """Connection between the ContentNode type and the ContentType type"""
contentType: ContentNodeToContentTypeConnectionEdge contentType: ContentNodeToContentTypeConnectionEdge
@@ -22961,7 +22961,7 @@ Base interface for taxonomy terms such as categories and tags. Terms are used to
""" """
interface TermNode implements Node & UniformResourceIdentifiable { interface TermNode implements Node & UniformResourceIdentifiable {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The number of objects connected to the object""" """The number of objects connected to the object"""
count: Int count: Int
@@ -23234,7 +23234,7 @@ type Theme implements Node {
authorUri: String authorUri: String
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
""" """
The description of the theme. This field is equivalent to WP_Theme-&gt;get( &quot;Description&quot; ). The description of the theme. This field is equivalent to WP_Theme-&gt;get( &quot;Description&quot; ).
@@ -23329,7 +23329,7 @@ An interface for content that can be accessed via a unique URI/URL path. Impleme
""" """
interface UniformResourceIdentifiable implements Node { interface UniformResourceIdentifiable implements Node {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The globally unique ID for the object""" """The globally unique ID for the object"""
id: ID! id: ID!
@@ -24450,7 +24450,7 @@ type User implements Commenter & DatabaseIdentifier & Node & UniformResourceIden
): Avatar ): Avatar
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
""" """
User metadata option name. Usually it will be &quot;wp_capabilities&quot;. User metadata option name. Usually it will be &quot;wp_capabilities&quot;.
@@ -24866,7 +24866,7 @@ enum UserNodeIdTypeEnum {
"""A user role object""" """A user role object"""
type UserRole implements Node { type UserRole implements Node {
"""Breadcrumb navigation items for this content""" """Breadcrumb navigation items for this content"""
breadcrumbs: [BreadcrumbItem] breadcrumbs: [BreadcrumbItem!]
"""The capabilities that belong to this role""" """The capabilities that belong to this role"""
capabilities: [String] capabilities: [String]