こんにちは。
XenForoからDiscourseにフォーラムを移行しました。古い投稿がたくさんあり、それらを閉じたいと考えています。
「xヶ月より古いすべてのトピックを閉じる」という方法はありますか?
すでにカテゴリで設定しましたが、新しいトピックにしか機能しません。
こんにちは。
XenForoからDiscourseにフォーラムを移行しました。古い投稿がたくさんあり、それらを閉じたいと考えています。
「xヶ月より古いすべてのトピックを閉じる」という方法はありますか?
すでにカテゴリで設定しましたが、新しいトピックにしか機能しません。
カテゴリ設定でこの設定を試すことができます。
これが遡ってクローズされるかはわかりませんが、試す価値はあります。
もう一つの考えは、高度なフィルターを使用して「Before」日付を設定することです。
そこから、表示されるトピックに対して一括アクションを使用できます。
トピックは一括で閉じることができます。Performing bulk actions as a moderator
ただし、閉じたいトピックの数によっては、Administrative Bulk Operations の方が適している場合があります。
はい、同様のものがリンクされるでしょう。1つのカテゴリに絞り込むにはどうすればよいですか?
カテゴリIDを見つけて、それをコマンドの追加条件として使用できます。たとえば、「general」カテゴリで9月24日より前に作成されたすべての未解決トピックを閉じます。
cat_id = Category.find_by_slug('general').id
Topic.where(closed: false).where("created_at < '2024-09-24'").where(category_id: cat_id).find_each do |topic|
topic.update_status('closed', true, Discourse.system_user)
end
このような操作は、常に少し不安になります。万が一問題が発生した場合に備えて、データベースのバックアップを作成してください。また、操作対象の正しいデータであることを確認するために、何らかの予備チェックを実行することも良い考えです。その方法の1つは、操作が実行されるトピックのcountを返すことです。たとえば、次のようになります。
Topic.where(closed: false).where("created_at < '2024-09-24'").where(category_id: cat_id).count
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.