Skip to main content
mySites.guru
NewmySites.guru is now a Cloudflare verified serviceWhat it means for your sites

How to Mass Reassign Joomla Content When Deleting Users

How to Mass Reassign Joomla Content When Deleting Users

A freelance writer finishes their contract. An editor moves on. A contributor account from a project three years ago is still there. You want the account gone, not the sixty articles behind it, and in Joomla those are two different jobs that core has never joined up: delete the account and every article it wrote is left pointing at a user that no longer exists, with no setting to stop it.

mySites.guru has a tool to help with that. Delete the account through it and their articles, categories and anything else on the site they created, last edited or had checked out go to an account you choose, on one site or across every site you manage. It is one piece of Universal User Management, and the rest of that, WordPress included, comes after the Joomla detail.

What happens to a Joomla author’s articles when you delete them?

Nothing happens to them, which is the problem. Deleting a user in Joomla’s User Manager removes the user row and fires the user plugins, and nothing in that path touches a content table. The articles stay published as they were, and the behaviour is the same in Joomla 3.10, 4, 5 and 6.

What goes is the account itself: the user row, its group map, private messages, remember-me keys, and through plugins the sessions, MFA records, profile rows, privacy consents, WebAuthn credentials and custom-field values. Action log entries stay. Everything the user created stays too, with its creator column still holding the deleted id: articles, categories, contacts, banners, news feeds, tags, fields and user notes. Modules and menu items have no creator column, so they are unaffected either way.

In the administrator’s Articles list, an article whose author is gone shows [ None ] in the Author column, because the list left-joins the users table and prints the “none” string when there is no match. Joomla 5.4.0 added a ”- None -” option to the Author filter so you can at least find those orphaned articles after the fact. On 5.3 and earlier there is no filter for them at all.

Joomla has been asked for this since 2017

The reassign-on-delete request is older than most of the sites it affects, and core has turned down or parked every version of it.

  1. Issue #18160 closed

    "Deleting Users - Reassign content" is closed as not implemented.

  2. PR #40751 closed unmerged

    "Change user before delete", a reassign step for Joomla 5.0, is closed without being merged.

  3. Feature request #45026 opened

    "Batch - change authors for articles / categories" asks for a batch author change.

  4. #45026 converted to a discussion

    The feature request leaves the issue tracker, still unimplemented.

  5. PR #48014 closed unmerged

    It would have made the current user the author when saving an orphaned article.

Core has no batch “change author” either. The Articles Batch dialog offers language, access level, category (move or copy), tag and workflow stage, and that is still the list in 7.0-dev. The one supported route is the “Created By” field on an article’s Publishing tab, one article at a time, and it only appears for accounts that have user management permission on the site. If the account should stay, mySites.guru can now reassign their content without deleting the user, across every site at once.

Each of those tickets asks for a fix on one site. The case an agency actually hits is one writer with accounts on twelve client sites, each with a few dozen articles, and a per-site feature in core would still leave you doing it twelve times. Twelve sites times a few dozen articles through the Publishing tab is an afternoon, and the alternative is SQL. mySites.guru is the only tool that does all twelve at once.

The only tool that does this across all your Joomla sites at once

Joomla core cannot pass a deleted author’s content to someone else even on one site, and no other Joomla management tool does it across many. mySites.guru finds the writer on all your connected sites, whether you look after twelve or several thousand, and deletes those accounts in one batch. On each site their articles, categories and anything else they created or last edited move to the account you name, in the same database transaction as the delete. You search once and confirm once with your password, instead of spending an afternoon per site in the Publishing tab or running SQL on each one.

The manual route is SQL, per author, per site

If you are doing this by hand, the only practical option is to update the creator columns before the account goes:

UPDATE #__content SET created_by = 42 WHERE created_by = 117;
UPDATE #__categories SET created_user_id = 42 WHERE created_user_id = 117;

Here 117 is the departing author’s id and 42 is the account receiving the content. #__ is the site’s table prefix placeholder, which you replace with the real prefix on that site (jos_, or whatever the installer chose). Then you delete the user. Repeat for every author and every site, with the ids looked up fresh each time because they differ on every install. That pair of statements covers articles and categories only; to do the whole job by hand you would also have to find every other table on the site with a creator or editor column, extension tables included, which is exactly what the tool below does per site.

Run the SQL before the delete, not after

Once the account is gone you can no longer look up its id in the User Manager, and the orphaned rows hold nothing but that number. Take a backup first, note the id, move the content, then delete.

Hand their content to someone else as part of the delete

When you delete a Joomla user through mySites.guru, the connector looks through every table on that site, core and third-party extensions alike, found per site by column name, and moves the integer user-id columns created_by, modified_by, created_user_id and modified_user_id, plus Joomla’s UCM core_* equivalents, to a receiving account, inside the same database transaction as the delete. Either the whole thing happens or none of it does, and the site is never left with half its articles moved and the author still present.

Anything the account had checked out is checked in. A Joomla contact linked to the account has that link cleared, so the contact still displays. The “Created by alias” text is a text field, not a user id, so it is never touched, and action logs and version history keep their record of who did what.

The handover is keyed on who owns the content, not on what group the account is in. An Author, an Editor, a Publisher or a plain Registered account that happens to own articles all get the same treatment, which is why a freelance writer’s account is the typical case rather than an administrator’s.

By default the content goes to the site’s lowest-id unblocked Super User that is not itself being deleted. Or pick any active account on that site from the “Who gets their content” picker in the delete dialog, which on a Joomla site explains itself underneath: “Everything they created, last edited or had checked out moves to the account you pick. Joomla never deletes it.”

  1. Open the site's page in mySites.guru and go to its User Manager tab.

  2. Open the More actions menu on the account you are removing and choose Delete.

  3. Choose who receives the content under "Who gets their content", or leave the default, the lowest-id Super User.

    Any active account on that site can be the receiver.

  4. Read the preview line, which tells you how many articles, categories and other items will move and to whom.

  5. Retype your own mySites.guru password and confirm.

    Every delete through mySites.guru requires it, however recently you logged in.

Joomla content is never deleted along with its author. WordPress has an option to delete the content instead; on Joomla, mySites.guru rejects it. A receiver is only needed when something the accounts created or last edited exists on the site; check-ins and contact links need none. If one is needed and no active Super User is left on the site to take it, mySites.guru stops the delete with a message saying so rather than orphaning the lot.

Can you see what will move before you confirm?

Yes, on a single site. The delete dialog in the per-site User Manager runs a dry run against the site and prints the result as one line, for example “14 articles, 2 categories and 9 other items move to admin.” or, on a smaller account, “2 articles and 1 other item move to admin.” The other items are whatever else on that site the account created, last edited or had checked out, counted across every table the connector found. Change the receiver and the line updates to name the new one. It writes nothing until you confirm.

The mySites.guru Delete this account dialog for samwriter on a Joomla site: a This cannot be undone warning, the Who gets their content picker set to Lowest-id Super User, the note Everything they created, last edited or had checked out moves to the account you pick. Joomla never deletes it., the preview line 2 articles and 1 other item move to admin., a Confirm with your account password field, and Cancel and Delete buttons

If nothing on the site belongs to the account, the line reads “Nothing on this site belongs to this account.” and no receiver is needed. The WordPress pane does the same with its own wording, “This account owns no posts or pages.”, and if you have chosen to delete the content there, it says the posts and pages are deleted with the account.

Deleting the same writer from every site at once

The single-site flow is for one account on one site. The agency case is one person on many sites, and that starts from the Universal User Management search: one box, matched against username, name and email on every connected Joomla and WordPress site, with results streaming in live from the sites because mySites.guru stores no user list of its own. Tick the accounts you want gone, across as many sites as they appear on, and press Delete.

The bulk dialog has one “Give their content to (username)” box. Type a username and it is looked up on each ticked site, with a row per site showing the match, so you can see that editor on one client’s site is the account you meant and not a stranger with the same login. WordPress rows can switch to deleting their content instead. Leave the box empty and each site applies its own default, which the dialog spells out underneath:

“If you pick no one, WordPress gives their posts and pages to its first remaining Administrator, and Joomla gives everything they created, last edited or had checked out to its lowest-id Super User. Content is only ever deleted on WordPress, and only if you choose that.”

The Delete accounts dialog in Universal User Management: admin typed into Give their content to (username) with a Find on each site button, a Delete their content on every WordPress site link, the default sentence beginning If you pick no one, and one row per site matching admin on two Joomla sites and one WordPress site, above a password field and a Delete 3 accounts button

There is no dry-run line in bulk; the preview is a per-site feature. What moves on each Joomla site is the same as in the single-site delete, worked out by that site’s own connector from that site’s own tables.

What happens to a deleted user's content on each platform when deleting through mySites.guru
JoomlaWordPress
What movesAnything they created, last edited or had checked outPosts of every type
Default receiverLowest-id active Super UserFirst remaining Administrator
Can content be deleted instead?NoYes, if you choose it
Preview on a single siteYesYes
Preview in bulkNoNo

Remove a writer from every site without losing a single article

Universal User Management finds the account on every connected Joomla and WordPress site and, when you delete it, gives everything they made to someone you choose. It is part of the mySites.guru subscription.

What else Universal User Management does

Deleting a writer is one end of a spectrum. Most of the time you want someone out without removing them, and the same search and bulk bar does that too. To keep the account and still hand over their articles, use Reassign Content, which also lets you choose which tables move. The full tour of the user manager goes through every control; this is the short version of what matters for people leaving.

Offboard, and undo it

The bulk bar on the search results offers Change details, Set password, Block, Unblock (Joomla), Set groups, Offboard and Delete. Offboard is one action: on Joomla you pick the group per site and the account is then blocked; on WordPress it removes every role.

The result toast after a block, group change or offboard has an Undo button, and a “Recent changes” section on the Universal User Management page lists the last 30 batches, with when, who, what, the accounts, the sites and the result, each with Undo. Undo stays available for 30 days, puts back the previous groups and unblocks. It never overwrites an account someone has changed in the meantime; that row is skipped. Delete is not covered by Undo, which is the other reason the handover matters.

The Recent changes panel on the Universal User Management page in mySites.guru, listing recent batches with When, Who, What, Accounts, Sites and Result columns for Deleted, Groups changed, Offboarded, Blocked, Unblocked and Edited batches, with results such as 2 done, 1 skipped and 1 denied, and Undone pills on an Offboarded and a Blocked row

Changed since you looked

Before each write, every site rechecks the account against what you saw in the results: last login, blocked state, groups. If any of it has moved, nothing is written and the row says “Changed since you looked” with a Refresh. A client who promoted someone an hour ago does not get them demoted, with no warning, by a batch you built on stale data.

Set groups across sites

Set groups gives you one row per ticked site, each reading that site’s own groups live (on WordPress, its roles). Pick per site, or pick a group name once and it is matched by name across the sites; a site with no group of that name asks you to choose one there. It replaces the account’s groups, and on WordPress sets the one role.

The Set groups dialog in mySites.guru: a Pick on every site chip bar with Administrator, Editor and Super Users counts, each Joomla site's own group tree with Editor ticked, Editor chosen as the role for a WordPress site, and a Set groups on 3 accounts button

Sessions end when you block

When mySites.guru blocks a Joomla account, changes its groups or sets its password, it also ends that account’s live sessions and remember-me tokens, the way Joomla’s own User Manager does when you block someone there. (Live sessions can only be found where Joomla keeps session metadata, which is its default.) Previously an account blocked through mySites.guru could stay signed in until its session expired. The same applies to the block and demote tools on the snapshot checks.

One credential this does not touch is API tokens. They are separate from sessions and need revoking on their own when someone leaves.

Find ex-staff

The staff roster, reached through Cmd+K with “Find ex-staff accounts”, takes your agency’s email domains, your current staff (who are kept off the list) and former staff personal addresses. “Add my team” pulls in your team logins. Find ex-staff then lists every account on your sites belonging to someone who has left, with an Ex-staff or Leaver pill, ready to Offboard, Block or Delete. The roster is stored encrypted and sent to your sites only when you run a find; the results are not stored. It is the companion to the audit that finds accounts you did not create, and the ex-staff offboarding walkthrough goes through a leaver from roster to Undo.

The Staff roster dialog in mySites.guru with an agency email domain, three current staff emails beside an Add my team button, two former staff personal email addresses, and Cancel, Save and Save and find buttons

Dormant admins and missing access levels

The “Inactive admins” snapshot check on Joomla and WordPress lists back-end-capable accounts not seen for 90 days, with Block or “Block all dormant” on Joomla and Demote or “Demote all” on WordPress (demote means Subscriber, with sessions ended). WordPress itself does not record logins, so the mySites.guru connector starts recording them with this update, and until it has seen one those rows read “Not tracked yet”. The inactive user accounts tool page covers the check in more detail.

The Joomla Inactive Administrators check in mySites.guru: 2 inactive administrators with a Block all dormant button, and two Super User rows, one last seen 3 years ago and one never, each marked No MFA with a Block button
The WordPress Inactive Administrators check in mySites.guru: 1 inactive administrator with a Demote all button, and a row whose last login reads Not tracked yet, with a Demote button

The “Content with a missing access level” check on Joomla is a cousin of the orphaned-author problem: articles, categories, menu items, modules, fields, contacts, news feeds and tags whose access level was deleted, which hides them from visitors. You set an existing level per item or for all of them.

Audit trail, team limits, and adding people

Every batch gets an audit trail entry and a summary email, and team members only reach sites on their allow-list. Joining is as quick as leaving: the command palette entry “Add a user to many sites” creates the account on every site you pick in one go.

Does this work on WordPress?

Yes, all of it. WordPress has always put the question at delete time: its delete screen asks “What should be done with the content owned by this user?” and offers “Delete all content.” or “Attribute all content to another user.”, then moves the author on every post of every type. Joomla never asked. mySites.guru now asks it on both platforms, across every site at once, and the WordPress delete through mySites.guru has always offered “Give their content to” per site or “Delete their content on every site”.

The same search, bulk bar, Offboard, Undo, Find ex-staff and the Inactive admins check all work on WordPress sites too, so a mixed Joomla and WordPress client list is handled from one screen. All of it is part of the mySites.guru subscription at £19.99 per month for unlimited sites, and the full tour linked above shows the rest of the user manager with screenshots.

Further reading

Frequently Asked Questions

What happens to a Joomla user's articles when the account is deleted?
Nothing happens to them. Joomla deletes the user row and leaves every article and category pointing at the old user id. The articles stay published, and the Articles list in the administrator shows their author as [ None ].
Can Joomla reassign articles to another user when I delete the author?
Not in core. The delete has no reassign option, and the Articles Batch dialog offers language, access level, category, tag and workflow stage but not author. You can change Created By one article at a time on the Publishing tab, or run SQL against #__content and #__categories before the delete.
What does mySites.guru move when it deletes a Joomla user?
Articles, categories and anything else on the site they created, last edited or had checked out. It looks through every table on that site, core and third-party extensions alike, and moves the created_by, modified_by, created_user_id and modified_user_id columns (and Joomla's UCM equivalents) to the receiver inside the same database transaction as the delete. Items they had checked out are checked in, a linked Joomla contact has its user link cleared, the Created by alias text is never touched, and action logs and version history keep their record of who did what.
What if there is no Super User left to receive the content?
mySites.guru stops the delete and tells you why. A receiver is only required when something the accounts created or last edited exists on the site; check-ins and contact links need none, so an account with nothing to pass on can be deleted without one.
Can I see what will be reassigned before I confirm?
On a single site, yes. The delete dialog in the per-site User Manager shows a dry-run line such as 14 articles, 2 categories and 9 other items move to admin, which updates as you change the receiver and writes nothing. The bulk delete across many sites has no preview.
Does the same thing work on WordPress sites?
Yes. WordPress has always asked what to do with a user's content at delete time, and mySites.guru puts the same question to both platforms. On WordPress you can give the posts to another user or delete them; on Joomla content is only ever reassigned, never deleted.
EU icon: AI MODIFIEDWritten and edited by a human, with AI assistance. Our approach to AI

What our users say

Tim Kruse
Tim KruseMedia & Web Design, Blömeke
★★★★★

Perfect if you manage more websites!

Read more reviews
Shaun Kehoe
Shaun KehoeKMK Media Group
★★★★★

We just started using mySites.guru after the recent Joomla attacks and I wish we started using it sooner. It saves so much time with the normal maintenance by quickly sending extension updates to the sites that needs it, checking the site for hacked files, updating Joomla on all sites with 1 click, and much more. It would normally take hours going through all of the sites and manually doing everything, but this has streamlined the process and made our maintenance/monitoring of all the sites so much better.

Read more reviews

Read all 303 reviews →

Ready to Take Control?

One free audit of one site · no card · about 2 minutes to connect

Get Your Free Site Audit