2020/5/22
Tag : craft-cms
GraphQL で Craft CMS のエントリのステータスを無効にしたり削除する #craftcms

Craft 3.5 ベータで GraphQL の Mutation が使えるようになって色々できることが増えた。
先日書いたのでエントリは削除するとした。
単に最初エントリのステータスを無効にする方法がわからなかっただけなのだけど、 enabled を false でよかった。
docs/graphql.md at 3.5 · craftcms/docs
https://github.com/craftcms/do…
エントリのステータスを無効にする場合
mutation{
save_bphub_bphub_Entry(
authorId:"1",
id: xxx,
enabled: false
){
id
}
}
save_bphub_bphub_Entry のところに何か別の方法があるのかなぁと思ったけど、 enabled を見落としていた。
エントリを削除する
エントリ自体を削除する場合は deleteEntry を利用する。
mutation{
deleteEntry(
id:1234
)
}
これで削除できる。
docs/graphql.md at 3.5 · craftcms/docs
https://github.com/craftcms/do…
削除できたかどうかのレスポンスが返ってくる。
ただ、複数削除するとかで id は配列だとだめっぽい感じなので、そこはこの処理をループする感じで。。。
{% set deleteEntry %}
mutation($id:Int!){
deleteEntry(
id:$id
)
}
{% endset %}
{% for article in articles.data.entries %}
{% set eid = article.id %}
{% set variables = {'id': (eid)} %}
{% set deleteEntries = gql(deleteEntry, variables) %}
{% endfor %}
とりあえず複数エントリの削除ができた。