Make WordPress Core

Opened 7 months ago

Last modified 5 months ago

#63378 new feature request

Multisite attribute for "retired" sites

Reported by: leedxw's profile leedxw Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version:
Component: Networks and Sites Keywords:
Focuses: multisite Cc:

Description

We have a multisite installation that has a large number of sites developed over multiple years.

The manager of the site wants to be able to "archive" sites that will no longer have new posts - but in a way that the site is still available. (I refer to this as "retired" rather than the current use of "archived" in WordPress multisite.)

This status might result in properties such as

  • the site would still function normally from the perspective of a normal visitor
  • we might use the status to add a banner to pages informing user the site has been retired
  • the site list in the network admin would show retired sites differently (as with archived sites)
  • all new comments would be disabled
  • non-admins would not be able to create new posts or pages or add uploads
  • some cron jobs would run less frequently if at all

Change History (5)

#1 follow-up: @realloc
6 months ago

Thanks for bringing this up. I agree that flagging inactive or archived sites can be very useful in large Multisite installations.

Before adding a new retired status, it might be worth looking at the existing mature flag. It already works as a non-enforced lifecycle marker in Multisite.

This flag is not used very often and is not visible in many places. But reusing or extending mature could be a way to avoid adding another status field. It would also help keep things simpler, unless there is a clear difference between what mature and retired should mean.

#2 @knutsp
6 months ago

I think a new attribute for retired sites, which means it's (supposed to) get a kind of readonly state (maybe except for users with administrator role), is a godd idea. Aa a first step this should only result in a filter action, leaving it up to developers to make it have side effects. To make it readonly one could downgrade all non admin users to contributor or no role for the site, but this will not be reversible programmatically.

Another way is to include this in all capability checks that allow for updates to published/private posts or, simpler, any, thereby short circuiting and returning just the "read" capability.

#3 in reply to: ↑ 1 @knutsp
6 months ago

Replying to realloc:

Before adding a new retired status, it might be worth looking at the existing mature flag. It already works as a non-enforced lifecycle marker in Multisite.

This flag is not used very often and is not visible in many places. But reusing or extending mature could be a way to avoid adding another status field. It would also help keep things simpler, unless there is a clear difference between what mature and retired should mean.

I have used the mature flag in some situations, to give those sites a special treatment in my site plugins, like enabling or disabling features. It doesn't seem to have any intrinsic effect. I understand wordpress.com uses it for excluding it from being part of content sharing, like their Reader. Other large networsk may use it in other ways, probaly alomng with it's intended meaning, the contant may not be appropriate for all audiences.

This means that extend the possible values of this field could make retired sites behave like mature, until they make stricter checks. Not falsy will mean mature or retired, which may be ok. So it can be bitmapped, 1 for mature, 2 for retired.

The important thing to discuss is how, if any, this should affect the site beyond being flagged. If no current action is suitable, at least
do_action ( 'site_flagged_retired', $site, $on_off );

#4 @leedxw
5 months ago

It would also help keep things simpler, unless there is a clear difference between what mature and retired should mean.

I think, for an English speaker, the expectation of mature when applied to a website is that the content is (or may be) of a nature unsuitable for certain contexts (children, workplaces). Using it to mean "old site, now read-only" would be confusing.

The reason I raise this on trac, is that I'm convinced that "live but no longer active" is a common status for sites on multisite, even ones that might *also* have mature sites, and not an edge-case. And this should be reflected in standard tools.

#5 @johnbillion
5 months ago

I would be in favour of some kind of "retired" state for a site on a network.

Notes:

  • Would the site effectively be read-only?
  • Most other site statuses make use of a column in the wp_blogs table. Do we need a new one for this status?
  • Could this be developed as a plugin first?
Note: See TracTickets for help on using tickets.