2020/5/26
Tag : craft-cms
Craft CMS でエントリの削除を定期的に実施する #craftcms
普通はプラグインでやるような内容だとは思うのだけど。
先日書いた GraphQL でのエントリ削除。
これを定期的に実施してみる。
GraphQL で削除対象のエントリを取り出して、そのエントリをループして削除する。
// 削除対象の statusid の値が4のエントリを取り出す
{% set articles = gql('{
entries(section:"hogehoge",statusid:4){
id
title
}
}') %}
// 削除するmutationのベース
{% 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 %}
こういう処理をするテンプレートを用意する。
そのテンプレートに対して、 cron で1日1回とかアクセスするようにして処理を実行する。
@tinybeans に教えてもらって。
0 0 * * * curl --silent --compressed "URL"
とりあえずこれで削除ができる。