Bibliothèque de queriesRemplacer un ancien slug de post par un nouveau slug dans tous les posts
Remplacer un ancien slug de post par un nouveau slug dans tous les posts
Après avoir modifié le slug d'un post, exécutez cette requête pour convertir tout le contenu afin qu'il pointe vers la nouvelle URL.
Cette requête nécessite que l'endpoint ait les Mutations imbriquées activées.
query ExportData(
$oldPostSlug: String!
$newPostSlug: String!
) {
siteURL: optionValue(name: "siteurl")
oldPostURL: _strAppend(
after: $__siteURL,
append: $oldPostSlug
) @export(as: "oldPostURL")
newPostURL: _strAppend(
after: $__siteURL,
append: $newPostSlug
) @export(as: "newPostURL")
}
mutation ReplaceOldWithNewSlugInPosts
@depends(on: "ExportData")
{
posts(
filter: {
search: $oldPostURL
},
pagination: {
limit: -1
}
) {
id
rawContent
adaptedRawContent: _strReplace(
search: $oldPostURL
replaceWith: $newPostURL
in: $__rawContent
)
update(input: {
contentAs: { html: $__adaptedRawContent }
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
post {
id
rawContent
}
}
}
}