diff --git a/composer.json b/composer.json index f12a286..cce7f0e 100644 --- a/composer.json +++ b/composer.json @@ -32,12 +32,14 @@ "lintfix": "vendor/bin/phpcbf" }, "require": { + "axepress/wp-graphql-rank-math": "*", "lewebsimple/advanced-custom-fields-pro": "*", "lewebsimple/kaliroots": "*", "lewebsimple/wp-graphql-headless-login": "*", "wpackagist-plugin/acf-extended": "*", "wpackagist-plugin/clean-image-filenames": "*", "wpackagist-plugin/disable-comments": "*", + "wpackagist-plugin/seo-by-rank-math": "*", "wpackagist-plugin/wp-graphql": "*", "wpackagist-plugin/wpgraphql-acf": "*" }, diff --git a/composer.lock b/composer.lock index c4b17b5..99c36a4 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,169 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "aec2b0e396a71ea02fe95432358ca91e", + "content-hash": "9673ea7f3e3f21866ae50f70e1d6a16b", "packages": [ + { + "name": "axepress/wp-graphql-plugin-boilerplate", + "version": "0.1.1", + "source": { + "type": "git", + "url": "https://github.com/AxeWP/wp-graphql-plugin-boilerplate.git", + "reference": "09495b61346453baabdf4c71a38ada3cfc91c3a7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/AxeWP/wp-graphql-plugin-boilerplate/zipball/09495b61346453baabdf4c71a38ada3cfc91c3a7", + "reference": "09495b61346453baabdf4c71a38ada3cfc91c3a7", + "shasum": "" + }, + "require": { + "php": ">=7.4" + }, + "require-dev": { + "axepress/wp-graphql-cs": "^2.0.0", + "axepress/wp-graphql-stubs": "^2.3.0", + "phpcompatibility/php-compatibility": "dev-develop as 9.9.9", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-deprecation-rules": "^2.0.1", + "szepeviktor/phpstan-wordpress": "^2.0", + "wp-cli/wp-cli-bundle": "^2.8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "AxeWP\\GraphQL\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0-or-later" + ], + "authors": [ + { + "name": "AxePress Development", + "homepage": "https://axepress.dev" + }, + { + "name": "David Levine", + "role": "Developer" + } + ], + "description": "Boilerplate for creating WPGraphQL extensions", + "support": { + "issues": "https://github.com/AxeWP/wp-graphql-plugin-boilerplate/issues", + "source": "https://github.com/AxeWP/wp-graphql-plugin-boilerplate/tree/0.1.1" + }, + "funding": [ + { + "url": "https://github.com/AxeWp", + "type": "github" + } + ], + "time": "2025-06-07T02:03:50+00:00" + }, + { + "name": "axepress/wp-graphql-rank-math", + "version": "0.3.4", + "source": { + "type": "git", + "url": "https://github.com/AxeWP/wp-graphql-rank-math.git", + "reference": "167bdd4a5350717ed34069c304e0ffc3fe02bc7d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/AxeWP/wp-graphql-rank-math/zipball/167bdd4a5350717ed34069c304e0ffc3fe02bc7d", + "reference": "167bdd4a5350717ed34069c304e0ffc3fe02bc7d", + "shasum": "" + }, + "require": { + "axepress/wp-graphql-plugin-boilerplate": "^0.1.1", + "php": ">=7.4" + }, + "require-dev": { + "axepress/wp-graphql-cs": "^2.0.0", + "axepress/wp-graphql-stubs": "^2.0.0", + "codeception/lib-innerbrowser": "^1.0", + "codeception/module-asserts": "^1.0", + "codeception/module-cli": "^1.0", + "codeception/module-db": "^1.0", + "codeception/module-filesystem": "^1.0", + "codeception/module-phpbrowser": "^1.0", + "codeception/module-rest": "^2.0", + "codeception/module-webdriver": "^1.0", + "codeception/phpunit-wrapper": "^9.0", + "codeception/util-universalframework": "^1.0", + "lucatume/wp-browser": "<3.5", + "php-coveralls/php-coveralls": "^2.5", + "phpcompatibility/php-compatibility": "dev-develop as 9.9.9", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^2.1.5", + "phpunit/phpunit": "^9.5", + "szepeviktor/phpstan-wordpress": "^2.0.1", + "wp-cli/wp-cli-bundle": "^2.8.1", + "wp-graphql/wp-graphql-testcase": "~3.4.0" + }, + "type": "wordpress-plugin", + "extra": { + "strauss": { + "packages": [ + "axepress/wp-graphql-plugin-boilerplate" + ], + "classmap_prefix": "WPGraphQL_RankMath_", + "constant_prefix": "WPGRAPHQL_SEO_", + "namespace_prefix": "WPGraphQL\\RankMath\\Vendor\\", + "target_directory": "vendor-prefixed", + "update_call_sites": false, + "exclude_from_prefix": { + "namespaces": [], + "file_patterns": [] + }, + "include_modified_date": false, + "delete_vendor_packages": true + } + }, + "autoload": { + "files": [ + "access-functions.php" + ], + "psr-4": { + "WPGraphQL\\RankMath\\": "src/" + }, + "classmap": [ + "vendor-prefixed/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0-or-later" + ], + "authors": [ + { + "name": "AxePress Development", + "email": "support@axepress.dev", + "homepage": "https://axepress.dev" + }, + { + "name": "David Levine", + "role": "Developer" + } + ], + "description": "Adds WPGraphQL support for RankMath SEO", + "support": { + "email": "support@axepress.dev", + "forum": "https://github.com/AxeWP/wp-graphql-rank-math/discussions", + "issues": "https://github.com/AxeWP/wp-graphql-rank-math/issues", + "source": "https://github.com/AxeWP/wp-graphql-rank-math/tree/0.3.4" + }, + "funding": [ + { + "url": "https://github.com/sponsors/AxeWP", + "type": "github" + } + ], + "time": "2025-06-07T12:05:15+00:00" + }, { "name": "composer/installers", "version": "v2.3.0", @@ -257,6 +418,24 @@ "type": "wordpress-plugin", "homepage": "https://wordpress.org/plugins/disable-comments/" }, + { + "name": "wpackagist-plugin/seo-by-rank-math", + "version": "1.0.262", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/seo-by-rank-math/", + "reference": "tags/1.0.262" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/seo-by-rank-math.1.0.262.zip" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/seo-by-rank-math/" + }, { "name": "wpackagist-plugin/wp-graphql", "version": "2.6.0", diff --git a/wp-content/themes/moonshine/app/composables/useNodeSeo.ts b/wp-content/themes/moonshine/app/composables/useNodeSeo.ts new file mode 100644 index 0000000..50d3b3d --- /dev/null +++ b/wp-content/themes/moonshine/app/composables/useNodeSeo.ts @@ -0,0 +1,20 @@ +import type { NodeByUriQueryResult, NodeSeoFragment } from "#graphql/operations"; + +export function useNodeSeo(node: NodeByUriQueryResult["nodeByUri"]) { + // Check if node has SEO data + if (!node || !("seo" in node) || !node.seo) { + return; + } + const { seo } = node as NodeSeoFragment; + + useSeoMeta({ + title: seo?.title || undefined, + description: seo?.description || undefined, + robots: (seo?.robots || []).join(", "), + ogTitle: seo?.openGraph?.title || undefined, + ogDescription: seo?.openGraph?.description || undefined, + ogImage: seo?.openGraph?.image?.url || undefined, + ogUrl: seo?.canonicalUrl || undefined, + twitterCard: "summary_large_image", + }); +} diff --git a/wp-content/themes/moonshine/app/graphql/NodebyUri.query.gql b/wp-content/themes/moonshine/app/graphql/NodebyUri.query.gql index 1b59449..23c7636 100644 --- a/wp-content/themes/moonshine/app/graphql/NodebyUri.query.gql +++ b/wp-content/themes/moonshine/app/graphql/NodebyUri.query.gql @@ -1,8 +1,27 @@ +fragment NodeSeo on NodeWithRankMathSeo { + seo { + title + description + robots + canonicalUrl + openGraph { + title + description + image { + url + } + } + } +} + query NodeByUri($uri: String!) { nodeByUri(uri: $uri) { __typename ... on Page { ... NodePage } + ... on NodeWithRankMathSeo { + ... NodeSeo + } } } diff --git a/wp-content/themes/moonshine/app/pages/[...uri].vue b/wp-content/themes/moonshine/app/pages/[...uri].vue index 64e525d..c5d76f9 100644 --- a/wp-content/themes/moonshine/app/pages/[...uri].vue +++ b/wp-content/themes/moonshine/app/pages/[...uri].vue @@ -1,8 +1,7 @@ diff --git a/wp-content/themes/moonshine/includes/core/theme-setup.php b/wp-content/themes/moonshine/includes/core/theme-setup.php index bd13079..a3c562d 100644 --- a/wp-content/themes/moonshine/includes/core/theme-setup.php +++ b/wp-content/themes/moonshine/includes/core/theme-setup.php @@ -20,13 +20,14 @@ function moonshine_after_setup_theme() { // Bypass headless home URL for specific cases add_filter( 'home_url', 'moonshine_bypass_home_url', 10, 4 ); function moonshine_bypass_home_url( $url, $path, $orig_scheme, $blog_id ) { - $excluded_patterns = array( - '#/wp-json(/|$)#i', - ); - foreach ( $excluded_patterns as $pattern ) { - if ( preg_match( $pattern, $url ) ) { - return get_site_url( $blog_id, $path, $orig_scheme ); - } + $excluded_patterns = array( + '#/wp-json(/|$)#i', // WP REST API + '#\.(xsl|xml)$#i', // Sitemap and XSLT files + ); + foreach ( $excluded_patterns as $pattern ) { + if ( preg_match( $pattern, $url ) ) { + return get_site_url( $blog_id, $path, $orig_scheme ); } - return $url; + } + return $url; } diff --git a/wp-content/themes/moonshine/nuxt.config.ts b/wp-content/themes/moonshine/nuxt.config.ts index 43a53cc..f667b6c 100644 --- a/wp-content/themes/moonshine/nuxt.config.ts +++ b/wp-content/themes/moonshine/nuxt.config.ts @@ -56,8 +56,6 @@ export default defineNuxtConfig({ }, }, - sitemap: { - zeroRuntime: true, - }, + sitemap: false, }); diff --git a/wp-content/themes/moonshine/server/graphql/schema.graphql b/wp-content/themes/moonshine/server/graphql/schema.graphql index 72d6def..337103b 100644 --- a/wp-content/themes/moonshine/server/graphql/schema.graphql +++ b/wp-content/themes/moonshine/server/graphql/schema.graphql @@ -154,7 +154,7 @@ enum AvatarRatingEnum { """ A taxonomy term that classifies content. Categories support hierarchy and can be used to create a nested structure. """ -type Category implements DatabaseIdentifier & HierarchicalNode & HierarchicalTermNode & MenuItemLinkable & Node & TermNode & UniformResourceIdentifiable { +type Category implements DatabaseIdentifier & HierarchicalNode & HierarchicalTermNode & MenuItemLinkable & Node & NodeWithRankMathSeo & TermNode & UniformResourceIdentifiable { """ The ancestors of the node. Default ordered as lowest (closest to the child) to highest (closest to the root). """ @@ -328,6 +328,9 @@ type Category implements DatabaseIdentifier & HierarchicalNode & HierarchicalTer where: CategoryToPostConnectionWhereArgs ): CategoryToPostConnection + """The RankMath SEO data for the node.""" + seo: RankMathCategoryTermSeo + """An alphanumeric identifier for the object unique to its type.""" slug: String @@ -413,6 +416,37 @@ enum CategoryIdType { URI } +"""The RankMath SEO meta settings for Catégories.""" +type CategoryMetaSettings implements RankMathMetaSettingWithArchive & RankMathMetaSettingWithRobots { + """Advanced robots meta tag settings.""" + advancedRobotsMeta: RankMathAdvancedRobotsMeta + + """Description for archive pages.""" + archiveDescription: String + + """Default title tag for archive page.""" + archiveTitle: String + + """ + Whether custom robots meta for author page are set. Otherwise the default meta will be used, as set in the Global Meta tab. + """ + hasCustomRobotsMeta: Boolean + + """Whether the SEO Controls meta box for user profile pages is enabled.""" + hasSeoControls: Boolean + + """ + Whether to show additional information (name & total number of posts) when an author archive is shared on Slack. + """ + hasSlackEnhancedSharing: Boolean + + """Whether to include snippet data for this taxonomy.""" + hasSnippetData: Boolean + + """Custom values for robots meta tag.""" + robotsMeta: [RankMathRobotsMetaValueEnum] +} + """Connection between the Category type and the category type""" type CategoryToAncestorsCategoryConnection implements CategoryConnection & Connection { """Edges for the CategoryToAncestorsCategoryConnection connection""" @@ -1482,7 +1516,7 @@ interface Connection { """ Base interface for content objects like posts, pages, and media items. Provides common fields available across these content types. """ -interface ContentNode implements Node & UniformResourceIdentifiable { +interface ContentNode implements Node & NodeWithRankMathSeo & UniformResourceIdentifiable { """Connection between the ContentNode type and the ContentType type""" contentType: ContentNodeToContentTypeConnectionEdge @@ -1600,6 +1634,9 @@ interface ContentNode implements Node & UniformResourceIdentifiable { """Whether the object is a node in the preview state""" previewRevisionId: ID + """The RankMath SEO data for the node.""" + seo: RankMathContentNodeSeo + """ The uri slug for the post. This is equivalent to the WP_Post->post_name field and the post_name column in the database for the "post_objects" table. """ @@ -1798,7 +1835,7 @@ interface ContentTemplate { } """An Post Type object""" -type ContentType implements Node & UniformResourceIdentifiable { +type ContentType implements Node & NodeWithRankMathSeo & UniformResourceIdentifiable { """Whether this content type should can be exported.""" canExport: Boolean @@ -1928,6 +1965,9 @@ type ContentType implements Node & UniformResourceIdentifiable { """The REST Controller class assigned to handling this content type.""" restControllerClass: String + """The RankMath SEO data for the node.""" + seo: RankMathSeo + """Makes this content type available via the admin bar.""" showInAdminBar: Boolean @@ -3524,7 +3564,7 @@ interface GroupSite_Fields implements AcfFieldGroup & AcfFieldGroupFields { """ Content that can be organized in a parent-child structure. Provides fields for navigating up and down the hierarchy and maintaining structured relationships. """ -interface HierarchicalContentNode implements ContentNode & DatabaseIdentifier & HierarchicalNode & Node & UniformResourceIdentifiable { +interface HierarchicalContentNode implements ContentNode & DatabaseIdentifier & HierarchicalNode & Node & NodeWithRankMathSeo & UniformResourceIdentifiable { """ Returns ancestors of the node. Default ordered as lowest (closest to the child) to highest (closest to the root). """ @@ -3699,6 +3739,9 @@ interface HierarchicalContentNode implements ContentNode & DatabaseIdentifier & """Whether the object is a node in the preview state""" previewRevisionId: ID + """The RankMath SEO data for the node.""" + seo: RankMathContentNodeSeo + """ The uri slug for the post. This is equivalent to the WP_Post->post_name field and the post_name column in the database for the "post_objects" table. """ @@ -3955,7 +3998,7 @@ interface HierarchicalNode implements DatabaseIdentifier & Node { } """Term node with hierarchical (parent/child) relationships""" -interface HierarchicalTermNode implements DatabaseIdentifier & HierarchicalNode & Node & TermNode & UniformResourceIdentifiable { +interface HierarchicalTermNode implements DatabaseIdentifier & HierarchicalNode & Node & NodeWithRankMathSeo & TermNode & UniformResourceIdentifiable { """The number of objects connected to the object""" count: Int @@ -4036,6 +4079,9 @@ interface HierarchicalTermNode implements DatabaseIdentifier & HierarchicalNode """The globally unique identifier of the parent node.""" parentId: ID + """The RankMath SEO data for the node.""" + seo: RankMathSeo + """An alphanumeric identifier for the object unique to its type.""" slug: String @@ -4310,7 +4356,7 @@ type MediaDetails { """ Represents uploaded media, including images, videos, documents, and audio files. """ -type MediaItem implements ContentNode & DatabaseIdentifier & HierarchicalContentNode & HierarchicalNode & Node & NodeWithAuthor & NodeWithTemplate & NodeWithTitle & UniformResourceIdentifiable { +type MediaItem implements ContentNode & DatabaseIdentifier & HierarchicalContentNode & HierarchicalNode & Node & NodeWithAuthor & NodeWithRankMathSeo & NodeWithTemplate & NodeWithTitle & UniformResourceIdentifiable { """Alternative text to display when resource is not displayed""" altText: String @@ -4550,6 +4596,9 @@ type MediaItem implements ContentNode & DatabaseIdentifier & HierarchicalContent """Whether the object is a node in the preview state""" previewRevisionId: ID + """The RankMath SEO data for the node.""" + seo: RankMathMediaItemObjectSeo + """The sizes attribute value for an image.""" sizes( """Size of the MediaItem to calculate sizes with""" @@ -5845,6 +5894,15 @@ interface NodeWithPageAttributes implements Node { menuOrder: Int } +"""A node with RankMath SEO data.""" +interface NodeWithRankMathSeo implements Node { + """The globally unique ID for the object""" + id: ID! + + """The RankMath SEO data for the node.""" + seo: RankMathSeo +} + """ Content that maintains a history of changes. Provides access to previous versions of the content and the ability to restore earlier revisions. """ @@ -6002,7 +6060,7 @@ enum OrderEnum { """ A standalone content entry generally used for static, non-chronological content such as "About Us" or "Contact" pages. """ -type Page implements ContentNode & DatabaseIdentifier & HierarchicalContentNode & HierarchicalNode & MenuItemLinkable & Node & NodeWithAuthor & NodeWithContentEditor & NodeWithFeaturedImage & NodeWithPageAttributes & NodeWithRevisions & NodeWithTemplate & NodeWithTitle & Previewable & UniformResourceIdentifiable & WithAcfGroupPostPage { +type Page implements ContentNode & DatabaseIdentifier & HierarchicalContentNode & HierarchicalNode & MenuItemLinkable & Node & NodeWithAuthor & NodeWithContentEditor & NodeWithFeaturedImage & NodeWithPageAttributes & NodeWithRankMathSeo & NodeWithRevisions & NodeWithTemplate & NodeWithTitle & Previewable & UniformResourceIdentifiable & WithAcfGroupPostPage { """ Returns ancestors of the node. Default ordered as lowest (closest to the child) to highest (closest to the root). """ @@ -6258,6 +6316,9 @@ type Page implements ContentNode & DatabaseIdentifier & HierarchicalContentNode where: PageToRevisionConnectionWhereArgs ): PageToRevisionConnection + """The RankMath SEO data for the node.""" + seo: RankMathPageObjectSeo + """ The uri slug for the post. This is equivalent to the WP_Post->post_name field and the post_name column in the database for the "post_objects" table. """ @@ -6358,6 +6419,67 @@ interface PageInfo { startCursor: String } +"""The RankMath SEO meta settings for Pages.""" +type PageMetaSettings implements RankMathMetaSettingWithRobots { + """Advanced robots meta tag settings.""" + advancedRobotsMeta: RankMathAdvancedRobotsMeta + + """List of custom fields name to include in the Page analysis""" + analyzedFields: [String] + + """Default article type when creating a new Pages.""" + articleType: RankMathArticleTypeEnum + + """Default description for single Pages pages.""" + description: String + + """Whether to list bulk editing columns to the post listing screen.""" + hasBulkEditing: RankMathBulkEditingTypeEnum + + """ + Whether custom robots meta for author page are set. Otherwise the default meta will be used, as set in the Global Meta tab. + """ + hasCustomRobotsMeta: Boolean + + """ + Whether Link Suggestions meta box and the Pillar Content featured are enabled for this post type. + """ + hasLinkSuggestions: Boolean + + """Whether the SEO Controls meta box for user profile pages is enabled.""" + hasSeoControls: Boolean + + """ + Whether to show additional information (name & total number of posts) when an author archive is shared on Slack. + """ + hasSlackEnhancedSharing: Boolean + + """Custom values for robots meta tag.""" + robotsMeta: [RankMathRobotsMetaValueEnum] + + """ + Whether to use the Focus Keyword as the default text for the links instead of the post titles. + """ + shouldUseFocusKeyword: Boolean + + """Default rich snippet headline.""" + snippetDescription: String + + """Default rich snippet headline.""" + snippetHeadline: String + + """Default rich snippet select when creating a new Pages.""" + snippetType: RankMathSnippetTypeEnum + + """ + The default image to display when sharing this post type on social media + """ + socialImage: MediaItem + + """Default title tag for single Pages pages.""" + title: String +} + """Connection between the page type and the page type""" type PageToPreviewConnectionEdge implements Edge & OneToOneConnection & PageConnectionEdge { """ @@ -6611,7 +6733,7 @@ enum PluginStatusEnum { """ A chronological content entry typically used for blog posts, news articles, or similar date-based content. """ -type Post implements ContentNode & DatabaseIdentifier & MenuItemLinkable & Node & NodeWithAuthor & NodeWithContentEditor & NodeWithExcerpt & NodeWithFeaturedImage & NodeWithRevisions & NodeWithTemplate & NodeWithTitle & Previewable & UniformResourceIdentifiable { +type Post implements ContentNode & DatabaseIdentifier & MenuItemLinkable & Node & NodeWithAuthor & NodeWithContentEditor & NodeWithExcerpt & NodeWithFeaturedImage & NodeWithRankMathSeo & NodeWithRevisions & NodeWithTemplate & NodeWithTitle & Previewable & UniformResourceIdentifiable { """The ancestors of the content node.""" ancestors( """ @@ -6874,6 +6996,9 @@ type Post implements ContentNode & DatabaseIdentifier & MenuItemLinkable & Node where: PostToRevisionConnectionWhereArgs ): PostToRevisionConnection + """The RankMath SEO data for the node.""" + seo: RankMathPostObjectSeo + """ The uri slug for the post. This is equivalent to the WP_Post->post_name field and the post_name column in the database for the "post_objects" table. """ @@ -7026,7 +7151,7 @@ interface PostConnectionPageInfo implements PageInfo & WPPageInfo { """ A standardized classification system for content presentation styles. These formats can be used to display content differently based on type, such as "standard", "gallery", "video", etc. """ -type PostFormat implements DatabaseIdentifier & Node & TermNode & UniformResourceIdentifiable { +type PostFormat implements DatabaseIdentifier & Node & NodeWithRankMathSeo & TermNode & UniformResourceIdentifiable { """Connection between the PostFormat type and the ContentNode type""" contentNodes( """ @@ -7148,6 +7273,9 @@ type PostFormat implements DatabaseIdentifier & Node & TermNode & UniformResourc where: PostFormatToPostConnectionWhereArgs ): PostFormatToPostConnection + """The RankMath SEO data for the node.""" + seo: RankMathPostFormatTermSeo + """An alphanumeric identifier for the object unique to its type.""" slug: String @@ -7233,6 +7361,31 @@ enum PostFormatIdType { URI } +"""The RankMath SEO meta settings for Formats.""" +type PostFormatMetaSettings implements RankMathMetaSettingWithArchive & RankMathMetaSettingWithRobots { + """Advanced robots meta tag settings.""" + advancedRobotsMeta: RankMathAdvancedRobotsMeta + + """Description for archive pages.""" + archiveDescription: String + + """Default title tag for archive page.""" + archiveTitle: String + + """ + Whether custom robots meta for author page are set. Otherwise the default meta will be used, as set in the Global Meta tab. + """ + hasCustomRobotsMeta: Boolean + + """ + Whether to show additional information (name & total number of posts) when an author archive is shared on Slack. + """ + hasSlackEnhancedSharing: Boolean + + """Custom values for robots meta tag.""" + robotsMeta: [RankMathRobotsMetaValueEnum] +} + """Connection between the PostFormat type and the ContentNode type""" type PostFormatToContentNodeConnection implements Connection & ContentNodeConnection { """Edges for the PostFormatToContentNodeConnection connection""" @@ -7510,6 +7663,67 @@ enum PostIdType { URI } +"""The RankMath SEO meta settings for Articles.""" +type PostMetaSettings implements RankMathMetaSettingWithRobots { + """Advanced robots meta tag settings.""" + advancedRobotsMeta: RankMathAdvancedRobotsMeta + + """List of custom fields name to include in the Page analysis""" + analyzedFields: [String] + + """Default article type when creating a new Articles.""" + articleType: RankMathArticleTypeEnum + + """Default description for single Articles pages.""" + description: String + + """Whether to list bulk editing columns to the post listing screen.""" + hasBulkEditing: RankMathBulkEditingTypeEnum + + """ + Whether custom robots meta for author page are set. Otherwise the default meta will be used, as set in the Global Meta tab. + """ + hasCustomRobotsMeta: Boolean + + """ + Whether Link Suggestions meta box and the Pillar Content featured are enabled for this post type. + """ + hasLinkSuggestions: Boolean + + """Whether the SEO Controls meta box for user profile pages is enabled.""" + hasSeoControls: Boolean + + """ + Whether to show additional information (name & total number of posts) when an author archive is shared on Slack. + """ + hasSlackEnhancedSharing: Boolean + + """Custom values for robots meta tag.""" + robotsMeta: [RankMathRobotsMetaValueEnum] + + """ + Whether to use the Focus Keyword as the default text for the links instead of the post titles. + """ + shouldUseFocusKeyword: Boolean + + """Default rich snippet headline.""" + snippetDescription: String + + """Default rich snippet headline.""" + snippetHeadline: String + + """Default rich snippet select when creating a new Articles.""" + snippetType: RankMathSnippetTypeEnum + + """ + The default image to display when sharing this post type on social media + """ + socialImage: MediaItem + + """Default title tag for single Articles pages.""" + title: String +} + """ Content field rendering options. Determines whether content fields are returned as raw data or with applied formatting and transformations. Default is RENDERED. """ @@ -8940,6 +9154,9 @@ type Query implements WithAcfOptionsPageOptionsSite { where: RootQueryToPostConnectionWhereArgs ): RootQueryToPostConnection + """RankMath SEO site settings""" + rankMathSettings: RankMathSettings + """Fields of the 'ReadingSettings' settings group""" readingSettings: ReadingSettings @@ -9188,6 +9405,1966 @@ type Query implements WithAcfOptionsPageOptionsSite { writingSettings: WritingSettings } +"""The config for an advanced robots meta values.""" +type RankMathAdvancedRobotsMeta { + """ + Whether to specify a maximum size of image preview to be shown for images on the page. + """ + hasImagePreview: Boolean + + """Whether to specify a maximum text length of a snippet of your page""" + hasSnippet: Boolean + + """Whether to specify a maximum duration of an animated video preview.""" + hasVideoPreview: Boolean + + """The maximum size of image preview to be shown for images.""" + imagePreviewSize: RankMathImagePreviewSize + + """ + The maximum text length (in characters) of the snippet. -1 for no limit. + """ + snippetLength: Int + + """ + The maximum duration (seconds characters) of the snippet. -1 for no limit. + """ + videoDuration: Int +} + +"""The SEO Article Type""" +enum RankMathArticleTypeEnum { + """Article.""" + ARTICLE + + """Blog post.""" + BLOG_POST + + """News article.""" + NEWS_ARTICLE +} + +"""The RankMath SEO Author Archive meta settings.""" +type RankMathAuthorArchiveMetaSettings implements RankMathMetaSettingWithArchive & RankMathMetaSettingWithRobots { + """Advanced robots meta tag settings.""" + advancedRobotsMeta: RankMathAdvancedRobotsMeta + + """Description for archive pages.""" + archiveDescription: String + + """Default title tag for archive page.""" + archiveTitle: String + + """Change the `/author/` part in author archive URLs.""" + baseSlug: String + + """Whether author archives are enabled.""" + hasArchives: Boolean + + """ + Whether custom robots meta for author page are set. Otherwise the default meta will be used, as set in the Global Meta tab. + """ + hasCustomRobotsMeta: Boolean + + """Whether the SEO Controls meta box for user profile pages is enabled.""" + hasSeoControls: Boolean + + """ + Whether to show additional information (name & total number of posts) when an author archive is shared on Slack. + """ + hasSlackEnhancedSharing: Boolean + + """Custom values for robots meta tag.""" + robotsMeta: [RankMathRobotsMetaValueEnum] +} + +"""The RankMath SEO breadcrumbs settings.""" +type RankMathBreadcrumbsConfig { + """Format the label used for archive pages.""" + archiveFormat: String + + """ + Whether to show all ancestor categories, if a category is a child category. + """ + hasAncestorCategories: Boolean + + """Whether to display the homepage breadcrumb in trail.""" + hasHome: Boolean + + """Whether the post title is visible in the breadcrumbs.""" + hasPostTitle: Boolean + + """Whether the taxonomy name is visible in the breadcrumbs.""" + hasTaxonomyName: Boolean + + """Label used for homepage link (first item) in breadcrumbs.""" + homeLabel: String + + """Link to use for homepage (first item) in breadcrumbs.""" + homeUrl: String + + """Label used for 404 error item in breadcrumbs.""" + notFoundLabel: String + + """Prefix for the breadcrumb path.""" + prefix: String + + """Format the label used for search results pages.""" + searchFormat: String + + """Separator character or string that appears between breadcrumb items.""" + separator: String +} + +"""The setting chosen for the RankMath Bulk Editing feature""" +enum RankMathBulkEditingTypeEnum { + """Disabled.""" + DISABLED + + """Enabled.""" + ENABLED + + """Read only.""" + READ_ONLY +} + +"""The category term object SEO data""" +type RankMathCategoryTermSeo implements RankMathSeo { + """The title to use in the breadcrumbs for this post""" + breadcrumbTitle: String + + """The canonical url.""" + canonicalUrl: String + + """The meta description.""" + description: String + + """The focus keywords you want to rank for""" + focusKeywords: [String] + + """The fully-rendered `head` tag for the given item""" + fullHead: String + + """The JSON+LD data""" + jsonLd: RankMathJsonLd + + """The open graph meta properties.""" + openGraph: RankMathOpenGraphMeta + + """A list of the robots meta properties to output.""" + robots: [String] + + """The title.""" + title: String +} + +"""The seo data for Post Objects""" +interface RankMathContentNodeSeo implements RankMathSeo { + """The title to use in the breadcrumbs for this post""" + breadcrumbTitle: String + + """The canonical url.""" + canonicalUrl: String + + """The meta description.""" + description: String + + """The focus keywords you want to rank for""" + focusKeywords: [String] + + """The fully-rendered `head` tag for the given item""" + fullHead: String + + """Whether the item is considered pillar (cornerstone) content""" + isPillarContent: Boolean + + """The JSON+LD data""" + jsonLd: RankMathJsonLd + + """The open graph meta properties.""" + openGraph: RankMathOpenGraphMeta + + """A list of the robots meta properties to output.""" + robots: [String] + + """The SEO score""" + seoScore: RankMathSeoScore + + """The title.""" + title: String +} + +"""The RankMath SEO Post Type settings.""" +type RankMathContentTypeMetaSettings { + """The RankMath SEO meta settings for Pages.""" + page: PageMetaSettings + + """The RankMath SEO meta settings for Articles.""" + post: PostMetaSettings +} + +"""The RankMath SEO DateArchive meta settings.""" +type RankMathDateArchiveMetaSettings implements RankMathMetaSettingWithArchive & RankMathMetaSettingWithRobots { + """Advanced robots meta tag settings.""" + advancedRobotsMeta: RankMathAdvancedRobotsMeta + + """Description for archive pages.""" + archiveDescription: String + + """Default title tag for archive page.""" + archiveTitle: String + + """Whether archives are enabled.""" + hasArchives: Boolean + + """Custom values for robots meta tag.""" + robotsMeta: [RankMathRobotsMetaValueEnum] +} + +"""RankMath Frontend SEO Score settings.""" +type RankMathFrontendSeoScore { + """The list of post types which should display the calculated SEO score.""" + enabledPostTypes: [ContentTypeEnum] + + """ + Whether to insert a backlink to RankMath.com to show your support, if you are showing the SEO scores on the front end. + """ + hasRankMathBacklink: Boolean + + """ + Where the SEO score badges should be displayed automatically, or if the `[rank_math_seo_score]` shortcode is used instead. + """ + position: RankMathSeoScorePositionEnum + + """The list of post types which should display the calculated SEO score.""" + template: RankMathSeoScoreTemplateTypeEnum +} + +"""The RankMath SEO general site settings""" +type RankMathGeneral { + """Breadcrumbs settings.""" + breadcrumbs: RankMathBreadcrumbsConfig + + """Frontend SEO score settings.""" + frontendSeoScore: RankMathFrontendSeoScore + + """Whether RankMath breadcrumbs are enabled.""" + hasBreadcrumbs: Boolean + + """ + Whether to display the calculated SEO Score as a badge on the frontend. It can be disabled for specific posts in the post editor. + """ + hasFrontendSeoScore: Boolean + + """Link settings.""" + links: RankMathLinks + + """The content to add after each post in your site feeds""" + rssAfterContent: String + + """The content to add before each post in your site feeds""" + rssBeforeContent: String + + """Webmaster Tools settings.""" + webmaster: RankMathWebmaster +} + +"""The RankMath SEO Global settings.""" +type RankMathGlobalMetaSettings implements RankMathMetaSettingWithRobots { + """Advanced robots meta tag settings.""" + advancedRobotsMeta: RankMathAdvancedRobotsMeta + + """ + When a featured image or an OpenGraph Image is not set for individual posts/pages/CPTs, this image will be used as a fallback thumbnail when your post is shared on Facebook. + """ + openGraphImage: MediaItem + + """Custom values for robots meta tag.""" + robotsMeta: [RankMathRobotsMetaValueEnum] + + """The separator character used in titles.""" + separator: String + + """ + Whether to automatically capitalize the first character of each word in the titles. + """ + shouldCapitalizeTitles: Boolean + + """Whether to index enpty Taxonomy archives""" + shouldIndexEmptyTaxonomies: Boolean + + """ + Whether titles for page, post, category, search, and archive pages can be rewritten. Only visible in themes without title-tag support + """ + shouldRewriteTitle: Boolean + + """ + Card type selected when creating a new post. This will also be applied for posts without a card type selected. + """ + twitterCardType: RankMathTwitterCardTypeEnum +} + +""" +The RankMath SEO Homepage settings. Only used when the Settings > Reading > Your homepage displays is set to `Your latest posts`. +""" +type RankMathHomepageMetaSettings implements RankMathMetaSettingWithRobots { + """Advanced robots meta tag settings.""" + advancedRobotsMeta: RankMathAdvancedRobotsMeta + + """Meta description.""" + description: String + + """ + Whether custom robots meta for author page are set. Otherwise the default meta will be used, as set in the Global Meta tab. + """ + hasCustomRobotsMeta: Boolean + + """Custom values for robots meta tag.""" + robotsMeta: [RankMathRobotsMetaValueEnum] + + """ + Description when shared on Facebook, Twitter and other social networks. + """ + socialDescription: String + + """ + Image displayed when your homepage is shared on Facebook and other social networks. + """ + socialImage: MediaItem + + """Title when shared on Facebook, Twitter and other social networks.""" + socialTitle: String + + """Title tag.""" + title: String +} + +"""Robots meta image preview size.""" +enum RankMathImagePreviewSize { + """Large""" + LARGE + + """Prevents search engines from following links on the pages""" + NONE + + """Standard.""" + STANDARD +} + +"""The JSON+LD information.""" +type RankMathJsonLd { + """The raw JSON+LD output""" + raw: String +} + +"""The knowledge graph type""" +enum RankMathKnowledgeGraphTypeEnum { + """Company.""" + COMPANY + + """Person.""" + PERSON +} + +"""The RankMath SEO links settings.""" +type RankMathLinks { + """The default redirection url for attachments without a parent post""" + defaultAttachmentRedirectUrl: String + + """Whether /category/ should be included in category archive URLs.""" + hasCategoryBase: Boolean + + """ + Only add `nofollow` attributes to links with the following target domains. If null, `nofollow` will be applied to <em>all</em> external domains. + """ + nofollowDomains: String + + """ + `nofollow` attributes will <em>not</em> be added to links with the following target domains. + """ + nofollowExcludedDomains: String + + """ + Whether to automatically add the `rel="nofollow" attribute to links pointing to external image files. + """ + shouldNofollowImageLinks: Boolean + + """ + Whether to automatically add the `rel="nofollow" attribute to external links appearing in your posts, pages, and other post types. + """ + shouldNofollowLinks: Boolean + + """ + Whether to automatically add `target="_blank"` attribute for external links appearing in your posts, pages, and other post types to make them open in a new browser tab or window. + """ + shouldOpenInNewWindow: Boolean + + """ + Whether to redirect all attachment page URLs to the post they appear in. + """ + shouldRedirectAttachments: Boolean +} + +"""The RankMath SEO Local settings.""" +type RankMathLocalMetaSettings { + """The logo to be used in the Google's Knowledge Graph.""" + logo: MediaItem + + """Your name or company name to be used in Google's Knowledge Graph""" + name: String + + """Whether the site represents a person or an organization.""" + type: RankMathKnowledgeGraphTypeEnum + + """URL of the item.""" + url: String +} + +"""The attachment post object SEO data""" +type RankMathMediaItemObjectSeo implements RankMathContentNodeSeo & RankMathSeo { + """The title to use in the breadcrumbs for this post""" + breadcrumbTitle: String + + """The canonical url.""" + canonicalUrl: String + + """The meta description.""" + description: String + + """The focus keywords you want to rank for""" + focusKeywords: [String] + + """The fully-rendered `head` tag for the given item""" + fullHead: String + + """Whether the item is considered pillar (cornerstone) content""" + isPillarContent: Boolean + + """The JSON+LD data""" + jsonLd: RankMathJsonLd + + """The open graph meta properties.""" + openGraph: RankMathOpenGraphMeta + + """A list of the robots meta properties to output.""" + robots: [String] + + """The SEO score""" + seoScore: RankMathSeoScore + + """The title.""" + title: String +} + +"""The attachment post type object SEO data""" +type RankMathMediaItemTypeSeo implements RankMathSeo { + """The title to use in the breadcrumbs for this post""" + breadcrumbTitle: String + + """The canonical url.""" + canonicalUrl: String + + """The meta description.""" + description: String + + """The focus keywords you want to rank for""" + focusKeywords: [String] + + """The fully-rendered `head` tag for the given item""" + fullHead: String + + """The JSON+LD data""" + jsonLd: RankMathJsonLd + + """The open graph meta properties.""" + openGraph: RankMathOpenGraphMeta + + """A list of the robots meta properties to output.""" + robots: [String] + + """The title.""" + title: String +} + +"""The RankMath SEO titles and meta site settings""" +type RankMathMeta { + """Author Archive settings.""" + authorArchives: RankMathAuthorArchiveMetaSettings + + """Content type settings.""" + contentTypes: RankMathContentTypeMetaSettings + + """Date Archive settings.""" + dateArchives: RankMathDateArchiveMetaSettings + + """Global settings.""" + global: RankMathGlobalMetaSettings + + """ + Homepage settings. Only used is the Homepage is set to display a list of posts. + """ + homepage: RankMathHomepageMetaSettings + + """Local settings.""" + local: RankMathLocalMetaSettings + + """Title tag on 404 Not Found error page.""" + notFoundTitle: String + + """Title tag on search results page.""" + searchTitle: String + + """Whether to index paginated archive pages from getting.""" + shouldIndexArchiveSubpages: Boolean + + """Whether to index /page/2 and further of any archive.""" + shouldIndexPaginatedPages: Boolean + + """Whether to index password protected pages and posts.""" + shouldIndexPasswordProtected: Boolean + + """Whether to index search result pages.""" + shouldIndexSearch: Boolean + + """Social settings.""" + social: RankMathSocialMetaSettings + + """Taxonomy settings.""" + taxonomies: RankMathTaxonomyMetaSettings +} + +"""Meta Settings with archive fields.""" +interface RankMathMetaSettingWithArchive { + """Description for archive pages.""" + archiveDescription: String + + """Default title tag for archive page.""" + archiveTitle: String +} + +"""Meta settings with robots fields.""" +interface RankMathMetaSettingWithRobots { + """Advanced robots meta tag settings.""" + advancedRobotsMeta: RankMathAdvancedRobotsMeta + + """Custom values for robots meta tag.""" + robotsMeta: [RankMathRobotsMetaValueEnum] +} + +"""The OpenGraph Article meta.""" +type RankMathOpenGraphArticle { + """The author.""" + author: String + + """The date modified.""" + modifiedTime: String + + """The date published.""" + publishedTime: String + + """The publisher""" + publisher: String + + """The article category.""" + section: String + + """The article tags.""" + tags: [String] +} + +"""The OpenGraph Facebook meta.""" +type RankMathOpenGraphFacebook { + """The Facebook admins associated with this resource""" + admins: [String] + + """The Facebook app ID associated with this resource""" + appId: ID +} + +"""The OpenGraph Image meta.""" +type RankMathOpenGraphImage { + """Height of image in pixels. """ + height: Float + + """The https:// URL for the image.""" + secureUrl: String + + """MIME type of the image. """ + type: String + + """URL for the image.""" + url: String + + """Width of image in pixels.""" + width: Float +} + +"""The Facebook OpenGraph Locale.""" +enum RankMathOpenGraphLocaleEnum { + """af_ZA.""" + AF_ZA + + """ak_GH.""" + AK_GH + + """am_ET.""" + AM_ET + + """ar_AR.""" + AR_AR + + """as_IN.""" + AS_IN + + """ay_BO.""" + AY_BO + + """az_AZ.""" + AZ_AZ + + """be_BY.""" + BE_BY + + """bg_BG.""" + BG_BG + + """bn_IN.""" + BN_IN + + """bp_IN.""" + BP_IN + + """br_FR.""" + BR_FR + + """bs_BA.""" + BS_BA + + """ca_ES.""" + CA_ES + + """cb_IQ.""" + CB_IQ + + """ck_US.""" + CK_US + + """co_FR.""" + CO_FR + + """cs_CZ.""" + CS_CZ + + """cx_PH.""" + CX_PH + + """cy_GB.""" + CY_GB + + """da_DK.""" + DA_DK + + """de_DE.""" + DE_DE + + """el_GR.""" + EL_GR + + """em_ZM.""" + EM_ZM + + """en_GB.""" + EN_GB + + """en_PI.""" + EN_PI + + """en_UD.""" + EN_UD + + """en_US.""" + EN_US + + """eo_EO.""" + EO_EO + + """es_ES.""" + ES_ES + + """es_LA.""" + ES_LA + + """es_MX.""" + ES_MX + + """et_EE.""" + ET_EE + + """eu_ES.""" + EU_ES + + """fa_IR.""" + FA_IR + + """fb_LT.""" + FB_LT + + """ff_NG.""" + FF_NG + + """fi_FI.""" + FI_FI + + """fo_FO.""" + FO_FO + + """fr_CA.""" + FR_CA + + """fr_FR.""" + FR_FR + + """fy_NL.""" + FY_NL + + """ga_IE.""" + GA_IE + + """gl_ES.""" + GL_ES + + """gn_PY.""" + GN_PY + + """gu_IN.""" + GU_IN + + """gx_GR.""" + GX_GR + + """ha_NG.""" + HA_NG + + """he_IL.""" + HE_IL + + """hi_IN.""" + HI_IN + + """hr_HR.""" + HR_HR + + """ht_HT.""" + HT_HT + + """hu_HU.""" + HU_HU + + """hy_AM.""" + HY_AM + + """id_ID.""" + ID_ID + + """ig_NG.""" + IG_NG + + """ik_US.""" + IK_US + + """is_IS.""" + IS_IS + + """it_IT.""" + IT_IT + + """iu_CA.""" + IU_CA + + """ja_JP.""" + JA_JP + + """ja_KS.""" + JA_KS + + """jv_ID.""" + JV_ID + + """ka_GE.""" + KA_GE + + """kk_KZ.""" + KK_KZ + + """km_KH.""" + KM_KH + + """kn_IN.""" + KN_IN + + """ko_KR.""" + KO_KR + + """ks_IN.""" + KS_IN + + """ku_TR.""" + KU_TR + + """ky_KG.""" + KY_KG + + """la_VA.""" + LA_VA + + """lg_UG.""" + LG_UG + + """li_NL.""" + LI_NL + + """ln_CD.""" + LN_CD + + """lo_LA.""" + LO_LA + + """lt_LT.""" + LT_LT + + """lv_LV.""" + LV_LV + + """mg_MG.""" + MG_MG + + """mi_NZ.""" + MI_NZ + + """mk_MK.""" + MK_MK + + """ml_IN.""" + ML_IN + + """mn_MN.""" + MN_MN + + """mr_IN.""" + MR_IN + + """ms_MY.""" + MS_MY + + """mt_MT.""" + MT_MT + + """my_MM.""" + MY_MM + + """nb_NO.""" + NB_NO + + """nd_ZW.""" + ND_ZW + + """ne_NP.""" + NE_NP + + """nl_BE.""" + NL_BE + + """nl_NL.""" + NL_NL + + """nn_NO.""" + NN_NO + + """nr_ZA.""" + NR_ZA + + """ns_ZA.""" + NS_ZA + + """ny_MW.""" + NY_MW + + """om_ET.""" + OM_ET + + """or_IN.""" + OR_IN + + """pa_IN.""" + PA_IN + + """pl_PL.""" + PL_PL + + """ps_AF.""" + PS_AF + + """pt_BR.""" + PT_BR + + """pt_PT.""" + PT_PT + + """qc_GT.""" + QC_GT + + """qr_GR.""" + QR_GR + + """qu_PE.""" + QU_PE + + """qz_MM.""" + QZ_MM + + """rm_CH.""" + RM_CH + + """ro_RO.""" + RO_RO + + """ru_RU.""" + RU_RU + + """rw_RW.""" + RW_RW + + """sa_IN.""" + SA_IN + + """sc_IT.""" + SC_IT + + """se_NO.""" + SE_NO + + """si_LK.""" + SI_LK + + """sk_SK.""" + SK_SK + + """sl_SI.""" + SL_SI + + """sn_ZW.""" + SN_ZW + + """so_SO.""" + SO_SO + + """sq_AL.""" + SQ_AL + + """sr_RS.""" + SR_RS + + """ss_SZ.""" + SS_SZ + + """st_ZA.""" + ST_ZA + + """su_ID.""" + SU_ID + + """sv_SE.""" + SV_SE + + """sw_KE.""" + SW_KE + + """sy_SY.""" + SY_SY + + """sz_PL.""" + SZ_PL + + """ta_IN.""" + TA_IN + + """te_IN.""" + TE_IN + + """tg_TJ.""" + TG_TJ + + """th_TH.""" + TH_TH + + """tk_TM.""" + TK_TM + + """tl_PH.""" + TL_PH + + """tl_ST.""" + TL_ST + + """tn_BW.""" + TN_BW + + """tr_TR.""" + TR_TR + + """ts_ZA.""" + TS_ZA + + """tt_RU.""" + TT_RU + + """tz_MA.""" + TZ_MA + + """uk_UA.""" + UK_UA + + """ur_PK.""" + UR_PK + + """uz_UZ.""" + UZ_UZ + + """ve_ZA.""" + VE_ZA + + """vi_VN.""" + VI_VN + + """wo_SN.""" + WO_SN + + """xh_ZA.""" + XH_ZA + + """yi_DE.""" + YI_DE + + """yo_NG.""" + YO_NG + + """zh_CN.""" + ZH_CN + + """zh_HK.""" + ZH_HK + + """zh_TW.""" + ZH_TW + + """zu_ZA.""" + ZU_ZA + + """zz_TR.""" + ZZ_TR +} + +"""The OpenGraph meta.""" +type RankMathOpenGraphMeta { + """A list of other locales this page is available in""" + alternateLocales: [RankMathOpenGraphLocaleEnum] + + """The OpenGraph Article meta.""" + articleMeta: RankMathOpenGraphArticle + + """ + A brief description of the content, usually between 2 and 4 sentences. + """ + description: String + + """The Facebook OpenGraph meta values.""" + facebookMeta: RankMathOpenGraphFacebook + + """The OpenGraph image meta""" + image: RankMathOpenGraphImage + + """The locale of the resource.""" + locale: RankMathOpenGraphLocaleEnum + + """The Facebook OpenGraph meta values.""" + productMeta: RankMathProduct + + """The name of the site this resource is associated with.""" + siteName: String + + """The Slack Enhanced Data meta values.""" + slackEnhancedData: [RankMathOpenGraphSlackEnhancedData] + + """The title of your object as it should appear within the graph.""" + title: String + + """The Twitter OpenGraph meta values.""" + twitterMeta: RankMathOpenGraphTwitter + + """The OpenGraph object type.""" + type: String + + """The updated time""" + updatedTime: String + + """ + The canonical URL of your object that will be used as its permanent ID in the graph. + """ + url: String + + """The Twitter OpenGraph meta values.""" + videoMeta: RankMathOpenGraphVideo +} + +"""The OpenGraph Product availibility""" +enum RankMathOpenGraphProductAvailabilityEnum { + """The product is in stock""" + IN_STOCK + + """The product is out of stock""" + OUT_OF_STOCK +} + +"""The Enhanced Data Tags for Slack Sharing.""" +type RankMathOpenGraphSlackEnhancedData { + """The Enhanced Data""" + data: String + + """The Enhanced Data label""" + label: String +} + +"""The OpenGraph Twitter meta.""" +type RankMathOpenGraphTwitter { + """The app country.""" + appCountry: String + + """The Twitter card type""" + card: RankMathTwitterCardTypeEnum + + """@username of content creator""" + creator: String + + """Description of content (maximum 200 characters)""" + description: String + + """The Twitter Google Play app meta""" + googleplayApp: RankMathOpenGraphTwitterApp + + """URL of image to use in the card.""" + image: String + + """The Twitter iPad app meta""" + ipadApp: RankMathOpenGraphTwitterApp + + """The Twitter iPhone app meta""" + iphoneApp: RankMathOpenGraphTwitterApp + + """URL to raw video or audio stream""" + playerStream: String + + """The content type of the stream""" + playerStreamContentType: String + + """URL of the twitter player.""" + playerUrl: Int + + """@username of website""" + site: String + + """Title of content""" + title: String +} + +"""The OpenGraph Twitter App meta.""" +type RankMathOpenGraphTwitterApp { + """The App ID .""" + id: ID + + """The name of the Twitter app.""" + name: String + + """Your app\’s custom URL scheme.""" + url: String +} + +"""The OpenGraph Video meta.""" +type RankMathOpenGraphVideo { + """The duration of the video.""" + duration: String + + """The URL of the video.""" + url: String +} + +"""The page post object SEO data""" +type RankMathPageObjectSeo implements RankMathContentNodeSeo & RankMathSeo { + """The title to use in the breadcrumbs for this post""" + breadcrumbTitle: String + + """The canonical url.""" + canonicalUrl: String + + """The meta description.""" + description: String + + """The focus keywords you want to rank for""" + focusKeywords: [String] + + """The fully-rendered `head` tag for the given item""" + fullHead: String + + """Whether the item is considered pillar (cornerstone) content""" + isPillarContent: Boolean + + """The JSON+LD data""" + jsonLd: RankMathJsonLd + + """The open graph meta properties.""" + openGraph: RankMathOpenGraphMeta + + """A list of the robots meta properties to output.""" + robots: [String] + + """The SEO score""" + seoScore: RankMathSeoScore + + """The title.""" + title: String +} + +"""The page post type object SEO data""" +type RankMathPageTypeSeo implements RankMathSeo { + """The title to use in the breadcrumbs for this post""" + breadcrumbTitle: String + + """The canonical url.""" + canonicalUrl: String + + """The meta description.""" + description: String + + """The focus keywords you want to rank for""" + focusKeywords: [String] + + """The fully-rendered `head` tag for the given item""" + fullHead: String + + """The JSON+LD data""" + jsonLd: RankMathJsonLd + + """The open graph meta properties.""" + openGraph: RankMathOpenGraphMeta + + """A list of the robots meta properties to output.""" + robots: [String] + + """The title.""" + title: String +} + +"""The post_format term object SEO data""" +type RankMathPostFormatTermSeo implements RankMathSeo { + """The title to use in the breadcrumbs for this post""" + breadcrumbTitle: String + + """The canonical url.""" + canonicalUrl: String + + """The meta description.""" + description: String + + """The focus keywords you want to rank for""" + focusKeywords: [String] + + """The fully-rendered `head` tag for the given item""" + fullHead: String + + """The JSON+LD data""" + jsonLd: RankMathJsonLd + + """The open graph meta properties.""" + openGraph: RankMathOpenGraphMeta + + """A list of the robots meta properties to output.""" + robots: [String] + + """The title.""" + title: String +} + +"""The post post object SEO data""" +type RankMathPostObjectSeo implements RankMathContentNodeSeo & RankMathSeo { + """The title to use in the breadcrumbs for this post""" + breadcrumbTitle: String + + """The canonical url.""" + canonicalUrl: String + + """The meta description.""" + description: String + + """The focus keywords you want to rank for""" + focusKeywords: [String] + + """The fully-rendered `head` tag for the given item""" + fullHead: String + + """Whether the item is considered pillar (cornerstone) content""" + isPillarContent: Boolean + + """The JSON+LD data""" + jsonLd: RankMathJsonLd + + """The open graph meta properties.""" + openGraph: RankMathOpenGraphMeta + + """A list of the robots meta properties to output.""" + robots: [String] + + """The SEO score""" + seoScore: RankMathSeoScore + + """The title.""" + title: String +} + +"""The post post type object SEO data""" +type RankMathPostTypeSeo implements RankMathSeo { + """The title to use in the breadcrumbs for this post""" + breadcrumbTitle: String + + """The canonical url.""" + canonicalUrl: String + + """The meta description.""" + description: String + + """The focus keywords you want to rank for""" + focusKeywords: [String] + + """The fully-rendered `head` tag for the given item""" + fullHead: String + + """The JSON+LD data""" + jsonLd: RankMathJsonLd + + """The open graph meta properties.""" + openGraph: RankMathOpenGraphMeta + + """A list of the robots meta properties to output.""" + robots: [String] + + """The title.""" + title: String +} + +"""The OpenGraph Product meta.""" +type RankMathProduct { + """The currency of the object price.""" + availability: RankMathOpenGraphProductAvailabilityEnum + + """The brand of the product.""" + brand: String + + """The currency of the object price.""" + currency: String + + """The price of the object""" + price: Float +} + +"""Robot meta value tag.""" +enum RankMathRobotsMetaValueEnum { + """ + IndexInstructs search engines to index and show these pages in the search results. + """ + INDEX + + """No ArchivePrevents search engines from showing Cached links for pages""" + NOARCHIVE + + """No FollowPrevents search engines from following links on the pages""" + NOFOLLOW + + """ + No Image IndexPrevents images on a page from being indexed by Google and other search engines + """ + NOIMAGEINDEX + + """ + No IndexPrevents pages from being indexed and displayed in search engine result pages + """ + NOINDEX + + """No SnippetPrevents a snippet from being shown in the search results""" + NOSNIPPET +} + +"""Base SEO fields shared across WP types.""" +interface RankMathSeo { + """The title to use in the breadcrumbs for this post""" + breadcrumbTitle: String + + """The canonical url.""" + canonicalUrl: String + + """The meta description.""" + description: String + + """The focus keywords you want to rank for""" + focusKeywords: [String] + + """The fully-rendered `head` tag for the given item""" + fullHead: String + + """The JSON+LD data""" + jsonLd: RankMathJsonLd + + """The open graph meta properties.""" + openGraph: RankMathOpenGraphMeta + + """A list of the robots meta properties to output.""" + robots: [String] + + """The title.""" + title: String +} + +"""The SEO rating""" +enum RankMathSeoRatingEnum { + """Bad ( < 50 ) score""" + BAD + + """Good (50-79) score""" + GOOD + + """Great ( > 80 ) score""" + GREAT + + """Unknown score.""" + UNKNOWN +} + +"""The Seo score information.""" +type RankMathSeoScore { + """The html output for the Frontend SEO badge""" + badgeHtml: String + + """Whether the SEO score should be displayed on the frontend""" + hasFrontendScore: Boolean + + """The SEO score""" + rating: RankMathSeoRatingEnum + + """The SEO score""" + score: Int +} + +"""The frontend SEO Score position""" +enum RankMathSeoScorePositionEnum { + """Above & below content""" + BOTH + + """Below content""" + BOTTOM + + """Custom (use shortcode)""" + CUSTOM + + """Above content""" + TOP +} + +"""The frontend SEO Score template type""" +enum RankMathSeoScoreTemplateTypeEnum { + """Circle template""" + CIRCLE + + """Square template""" + SQUARE +} + +"""The RankMath SEO site settings""" +type RankMathSettings { + """General settings.""" + general: RankMathGeneral + + """Meta settings.""" + meta: RankMathMeta + + """Sitemap settings.""" + sitemap: RankMathSitemap +} + +"""The RankMath SEO titles and meta site settings""" +type RankMathSitemap { + """Author sitemap settings. Null if authors are not indexable.""" + author: RankMathSitemapAuthorSettings + + """Content types included in the sitemap.""" + contentTypes( + """Limit results to specific content types.""" + include: [ContentTypeEnum] + ): [RankMathSitemapContentTypeSettings] + + """Sitemap general settings.""" + general: RankMathSitemapGeneralSettings + + """The URL to the sitemap index.""" + sitemapIndexUrl: String + + """Content types included in the sitemap.""" + taxonomies( + """Limit results to specific taxonomies.""" + include: [TaxonomyEnum] + ): [RankMathSitemapTaxonomySettings] +} + +"""The RankMath SEO Sitemap general settings.""" +type RankMathSitemapAuthorSettings { + """The connected authors whose URLs are included in the sitemap""" + connectedAuthors( + """ + Cursor used along with the "first" argument to reference where in the dataset to get data + """ + after: String + + """ + Cursor used along with the "last" argument to reference where in the dataset to get data + """ + before: String + + """The number of items to return after the referenced "after" cursor""" + first: Int + + """The number of items to return before the referenced "before" cursor""" + last: Int + ): RankMathSitemapAuthorSettingsToUserConnection + + """List of user roles excluded from the sitemap.""" + excludedRoles: [UserRoleEnum] + + """List of user IDs excluded from the sitemap.""" + excludedUserDatabaseIds: [Int] + + """The sitemap URL.""" + sitemapUrl: String +} + +""" +Connection between the RankMathSitemapAuthorSettings type and the User type +""" +type RankMathSitemapAuthorSettingsToUserConnection implements Connection & UserConnection { + """Edges for the RankMathSitemapAuthorSettingsToUserConnection connection""" + edges: [RankMathSitemapAuthorSettingsToUserConnectionEdge!]! + + """The nodes of the connection, without the edges""" + nodes: [User!]! + + """Information about pagination in a connection.""" + pageInfo: RankMathSitemapAuthorSettingsToUserConnectionPageInfo! +} + +"""An edge in a connection""" +type RankMathSitemapAuthorSettingsToUserConnectionEdge implements Edge & UserConnectionEdge { + """A cursor for use in pagination""" + cursor: String + + """The item at the end of the edge""" + node: User! +} + +""" +Pagination metadata specific to "RankMathSitemapAuthorSettingsToUserConnection" collections. Provides cursors and flags for navigating through sets of RankMathSitemapAuthorSettingsToUserConnection Nodes. +""" +type RankMathSitemapAuthorSettingsToUserConnectionPageInfo implements PageInfo & UserConnectionPageInfo & WPPageInfo { + """When paginating forwards, the cursor to continue.""" + endCursor: String + + """When paginating forwards, are there more items?""" + hasNextPage: Boolean! + + """When paginating backwards, are there more items?""" + hasPreviousPage: Boolean! + + """When paginating backwards, the cursor to continue.""" + startCursor: String +} + +"""The RankMath SEO Sitemap general settings.""" +type RankMathSitemapContentTypeSettings { + """The connected content nodes whose URLs are included in the sitemap""" + connectedContentNodes( + """ + Cursor used along with the "first" argument to reference where in the dataset to get data + """ + after: String + + """ + Cursor used along with the "last" argument to reference where in the dataset to get data + """ + before: String + + """The number of items to return after the referenced "after" cursor""" + first: Int + + """The number of items to return before the referenced "before" cursor""" + last: Int + ): RankMathSitemapContentTypeSettingsToContentNodeConnection + + """ + List of custom field (post meta) names which contain image URLs to include them in the sitemaps. + """ + customImageMetaKeys: [String] + + """Whether the content type is included in the sitemap.""" + isInSitemap: Boolean + + """The sitemap URL.""" + sitemapUrl: String + + """The content type.""" + type: ContentTypeEnum +} + +""" +Connection between the RankMathSitemapContentTypeSettings type and the ContentNode type +""" +type RankMathSitemapContentTypeSettingsToContentNodeConnection implements Connection & ContentNodeConnection { + """ + Edges for the RankMathSitemapContentTypeSettingsToContentNodeConnection connection + """ + edges: [RankMathSitemapContentTypeSettingsToContentNodeConnectionEdge!]! + + """The nodes of the connection, without the edges""" + nodes: [ContentNode!]! + + """Information about pagination in a connection.""" + pageInfo: RankMathSitemapContentTypeSettingsToContentNodeConnectionPageInfo! +} + +"""An edge in a connection""" +type RankMathSitemapContentTypeSettingsToContentNodeConnectionEdge implements ContentNodeConnectionEdge & Edge { + """A cursor for use in pagination""" + cursor: String + + """The item at the end of the edge""" + node: ContentNode! +} + +""" +Pagination metadata specific to "RankMathSitemapContentTypeSettingsToContentNodeConnection" collections. Provides cursors and flags for navigating through sets of RankMathSitemapContentTypeSettingsToContentNodeConnection Nodes. +""" +type RankMathSitemapContentTypeSettingsToContentNodeConnectionPageInfo implements ContentNodeConnectionPageInfo & PageInfo & WPPageInfo { + """When paginating forwards, the cursor to continue.""" + endCursor: String + + """When paginating forwards, are there more items?""" + hasNextPage: Boolean! + + """When paginating backwards, are there more items?""" + hasPreviousPage: Boolean! + + """When paginating backwards, the cursor to continue.""" + startCursor: String +} + +"""The RankMath SEO Sitemap general settings.""" +type RankMathSitemapGeneralSettings { + """Whether to notify search engines when the sitemap is updated.""" + canPingSearchEngines: Boolean @deprecated(reason: "This feature is no longer supported by Google, and has been removed from RankMath v1.0.211+.") + + """ + A list of post IDs excluded from the sitemap. This option **applies** to all posts types including posts, pages, and custom post types. + """ + excludedPostDatabaseIds: [Int] + + """ + A list of term IDs excluded from the sitemap. This option **applies** to all taxonomies. + """ + excludedTermDatabaseIds: [Int] + + """ + Whether the Featured Image is included in sitemaps too, even if it does not appear directly in the post content. + """ + hasFeaturedImage: Boolean + + """ + Whether reference to images from the post content is included in sitemaps. + """ + hasImages: Boolean + + """Max number of links on each sitemap page.""" + linksPerSitemap: Int +} + +"""The RankMath SEO Sitemap general settings.""" +type RankMathSitemapTaxonomySettings { + """The connected terms whose URLs are included in the sitemap""" + connectedTerms( + """ + Cursor used along with the "first" argument to reference where in the dataset to get data + """ + after: String + + """ + Cursor used along with the "last" argument to reference where in the dataset to get data + """ + before: String + + """The number of items to return after the referenced "after" cursor""" + first: Int + + """The number of items to return before the referenced "before" cursor""" + last: Int + ): RankMathSitemapTaxonomySettingsToTermNodeConnection + + """Whether to archive pages of terms that have no posts associated.""" + hasEmptyTerms: Boolean + + """Whether the content type is included in the sitemap.""" + isInSitemap: Boolean + + """The sitemap URL.""" + sitemapUrl: String + + """The taxonomy type.""" + type: TaxonomyEnum +} + +""" +Connection between the RankMathSitemapTaxonomySettings type and the TermNode type +""" +type RankMathSitemapTaxonomySettingsToTermNodeConnection implements Connection & TermNodeConnection { + """ + Edges for the RankMathSitemapTaxonomySettingsToTermNodeConnection connection + """ + edges: [RankMathSitemapTaxonomySettingsToTermNodeConnectionEdge!]! + + """The nodes of the connection, without the edges""" + nodes: [TermNode!]! + + """Information about pagination in a connection.""" + pageInfo: RankMathSitemapTaxonomySettingsToTermNodeConnectionPageInfo! +} + +"""An edge in a connection""" +type RankMathSitemapTaxonomySettingsToTermNodeConnectionEdge implements Edge & TermNodeConnectionEdge { + """A cursor for use in pagination""" + cursor: String + + """The item at the end of the edge""" + node: TermNode! +} + +""" +Pagination metadata specific to "RankMathSitemapTaxonomySettingsToTermNodeConnection" collections. Provides cursors and flags for navigating through sets of RankMathSitemapTaxonomySettingsToTermNodeConnection Nodes. +""" +type RankMathSitemapTaxonomySettingsToTermNodeConnectionPageInfo implements PageInfo & TermNodeConnectionPageInfo & WPPageInfo { + """When paginating forwards, the cursor to continue.""" + endCursor: String + + """When paginating forwards, are there more items?""" + hasNextPage: Boolean! + + """When paginating backwards, are there more items?""" + hasPreviousPage: Boolean! + + """When paginating backwards, the cursor to continue.""" + startCursor: String +} + +"""The rich snippet type.""" +enum RankMathSnippetTypeEnum { + """Article""" + ARTICLE + + """Book""" + BOOK + + """Course""" + COURSE + + """Event""" + EVENT + + """Job Posting""" + JOBPOSTING + + """Local Business""" + LOCAL_BUSINESS + + """Music""" + MUSIC + + """None.""" + OFF + + """Person""" + PERSON + + """Product""" + PRODUCT + + """Recipe""" + RECIPE + + """Restaurant""" + RESTAURANT + + """Service""" + SERVICE + + """Software Application""" + SOFTWARE + + """Video""" + VIDEO +} + +"""The RankMath SEO Social settings.""" +type RankMathSocialMetaSettings { + """ + Additional social profile URLs to add to the sameAs property for the Organization Schema. + """ + additionalProfiles: [String] + + """A list of numeric Facebook admin User Ids.""" + facebookAdminId: [Int] + + """The facebook Facebook app ID.""" + facebookAppId: Int + + """ + The personal Facebook profile URL used to show authorship when articles are shared on Facebook. + """ + facebookAuthorUrl: String + + """The complete Facebook page URL.""" + facebookPageUrl: String + + """Twitter Username of the auther used in the `twitter:creater` tag.""" + twitterAuthorName: String +} + +"""The post_tag term object SEO data""" +type RankMathTagTermSeo implements RankMathSeo { + """The title to use in the breadcrumbs for this post""" + breadcrumbTitle: String + + """The canonical url.""" + canonicalUrl: String + + """The meta description.""" + description: String + + """The focus keywords you want to rank for""" + focusKeywords: [String] + + """The fully-rendered `head` tag for the given item""" + fullHead: String + + """The JSON+LD data""" + jsonLd: RankMathJsonLd + + """The open graph meta properties.""" + openGraph: RankMathOpenGraphMeta + + """A list of the robots meta properties to output.""" + robots: [String] + + """The title.""" + title: String +} + +"""The RankMath SEO Taxonomy meta settings.""" +type RankMathTaxonomyMetaSettings { + """The RankMath SEO meta settings for Catégories.""" + category: CategoryMetaSettings + + """The RankMath SEO meta settings for Formats.""" + postFormat: PostFormatMetaSettings + + """The RankMath SEO meta settings for Étiquettes.""" + tag: TagMetaSettings +} + +"""The Twitter Card Type Enum""" +enum RankMathTwitterCardTypeEnum { + """The twitter App card""" + APP + + """The twitter Player card""" + PLAYER + + """Summary Card.""" + SUMMARY + + """Summary Card with Large Image.""" + SUMMARY_LARGE_IMAGE +} + +"""The user object SEO data""" +type RankMathUserSeo implements RankMathSeo { + """Additional social profile URLs to add to the sameAs property.""" + additionalProfiles: [String] + + """The title to use in the breadcrumbs for this post""" + breadcrumbTitle: String + + """The canonical url.""" + canonicalUrl: String + + """The meta description.""" + description: String + + """The complete Facebook profile URL.""" + facebookProfileUrl: String + + """The focus keywords you want to rank for""" + focusKeywords: [String] + + """The fully-rendered `head` tag for the given item""" + fullHead: String + + """The JSON+LD data""" + jsonLd: RankMathJsonLd + + """The open graph meta properties.""" + openGraph: RankMathOpenGraphMeta + + """A list of the robots meta properties to output.""" + robots: [String] + + """The title.""" + title: String + + """Twitter Username of the user.""" + twitterUserName: String +} + +"""The RankMath SEO Webmaster Tools settings""" +type RankMathWebmaster { + """The Baidu Webmaster Tools verification HTML code or ID.""" + baidu: String + + """The Bing Webmaster Tools verification HTML code or ID.""" + bing: String + + """The Google Search Console verification HTML code or ID.""" + google: String + + """The Norton Safe Web verification HTML code or ID.""" + norton: String + + """The Pinterest verification HTML code or ID.""" + pinterest: String + + """The Yandex verification HTML code or ID.""" + yandex: String +} + """The reading setting type""" type ReadingSettings { """L’ID de la page qui affichera les derniers articles""" @@ -11248,7 +13425,7 @@ type SiteTokenLoginOptions implements LoginOptions { """ A taxonomy term used to organize and classify content. Tags do not have a hierarchy and are generally used for more specific classifications. """ -type Tag implements DatabaseIdentifier & MenuItemLinkable & Node & TermNode & UniformResourceIdentifiable { +type Tag implements DatabaseIdentifier & MenuItemLinkable & Node & NodeWithRankMathSeo & TermNode & UniformResourceIdentifiable { """Connection between the Tag type and the ContentNode type""" contentNodes( """ @@ -11367,6 +13544,9 @@ type Tag implements DatabaseIdentifier & MenuItemLinkable & Node & TermNode & Un where: TagToPostConnectionWhereArgs ): TagToPostConnection + """The RankMath SEO data for the node.""" + seo: RankMathTagTermSeo + """An alphanumeric identifier for the object unique to its type.""" slug: String @@ -11455,6 +13635,37 @@ enum TagIdType { URI } +"""The RankMath SEO meta settings for Étiquettes.""" +type TagMetaSettings implements RankMathMetaSettingWithArchive & RankMathMetaSettingWithRobots { + """Advanced robots meta tag settings.""" + advancedRobotsMeta: RankMathAdvancedRobotsMeta + + """Description for archive pages.""" + archiveDescription: String + + """Default title tag for archive page.""" + archiveTitle: String + + """ + Whether custom robots meta for author page are set. Otherwise the default meta will be used, as set in the Global Meta tab. + """ + hasCustomRobotsMeta: Boolean + + """Whether the SEO Controls meta box for user profile pages is enabled.""" + hasSeoControls: Boolean + + """ + Whether to show additional information (name & total number of posts) when an author archive is shared on Slack. + """ + hasSlackEnhancedSharing: Boolean + + """Whether to include snippet data for this taxonomy.""" + hasSnippetData: Boolean + + """Custom values for robots meta tag.""" + robotsMeta: [RankMathRobotsMetaValueEnum] +} + """Connection between the Tag type and the ContentNode type""" type TagToContentNodeConnection implements Connection & ContentNodeConnection { """Edges for the TagToContentNodeConnection connection""" @@ -11973,7 +14184,7 @@ type TaxonomyToTermNodeConnectionPageInfo implements PageInfo & TermNodeConnecti """ Base interface for taxonomy terms such as categories and tags. Terms are used to organize and classify content. """ -interface TermNode implements Node & UniformResourceIdentifiable { +interface TermNode implements Node & NodeWithRankMathSeo & UniformResourceIdentifiable { """The number of objects connected to the object""" count: Int @@ -12048,6 +14259,9 @@ interface TermNode implements Node & UniformResourceIdentifiable { """The human friendly name of the object.""" name: String + """The RankMath SEO data for the node.""" + seo: RankMathSeo + """An alphanumeric identifier for the object unique to its type.""" slug: String @@ -12891,7 +15105,7 @@ type UpdateUserPayload { """ A registered user account. Users can be assigned roles, author content, and have various capabilities within the site. """ -type User implements Commenter & DatabaseIdentifier & Node & UniformResourceIdentifiable { +type User implements Commenter & DatabaseIdentifier & Node & NodeWithRankMathSeo & UniformResourceIdentifiable { """Headless Login authentication data.""" auth: AuthenticationData @@ -13158,6 +15372,9 @@ type User implements Commenter & DatabaseIdentifier & Node & UniformResourceIden last: Int ): UserToUserRoleConnection + """The RankMath SEO data for the node.""" + seo: RankMathUserSeo + """ Whether the Toolbar should be displayed when the user is viewing the site. """