Configure editorial guidance, duplication and content lists

Site administrators can enable six independent controls under Settings → POM Tweaks → Content. Each applies to the current site. Enable the required module and save before configuring its fields; changing one module does not enable its neighbors.

Tab Module Purpose
Editing Editorial notices Give editors guidance for selected content types.
Editing Content duplicator Copy content with optional taxonomy terms and custom fields.
Lists Hide row actions Hide selected links under content titles.
Lists Hide bulk actions Hide bulk action menus for selected content lists.
General User role body class Let frontend CSS target the signed-in user's primary role.
General Retain trashed content Stop WordPress from automatically emptying this site's Trash.

Saved selections for temporarily unavailable post types remain visible. Installing a new post type does not select it automatically.

Add guidance to an editor

  1. Open Content → Editing, enable Editorial notices, and save.
  2. Add an item in Editorial notices.
  3. Check Show this notice, select Post type, and enter a Title and Message. The message supports safe HTML, including links and paragraphs; scripts are removed.
  4. Add further notices as needed and drag them into the desired order. Uncheck an individual notice to keep its content without displaying it.
  5. Save and open an item of the selected type. In the classic editor, guidance appears after the title. In the block editor, open Editorial notices in the panel area below the editor.
  6. Open a different type and confirm it only shows notices assigned to that type.

Notices are guidance, not validation rules: they do not block saving. They can appear on existing items and new-item editing screens. An empty notice produces no message. A hidden editor panel can be restored using the editor's panel controls; another module that hides metaboxes may also affect its visibility.

Configure and use duplication

  1. Under Content → Editing, enable Content duplicator and save.
  2. Select Allow duplication for these post types.
  3. Choose Copy status. Draft lets an editor review the copy before publishing. Published publishes the completed copy only when that user has the type's publishing permission; otherwise it remains a draft. Existing configurations transferred from the classic duplicator keep their previous published-copy setting.
  4. Choose whether to show the Duplicate editor panel and Duplicate and edit in the frontend admin bar.
  5. Choose whether to Copy taxonomy terms and Copy custom fields, then save.
  6. In a selected content list, use Duplicate to return to the list or Duplicate & Edit to open the new item. The editor panel and frontend toolbar offer the same operation with editing afterward.
  7. Check the copy's status, content, terms, featured image, template and custom fields before using it.

The copy belongs to the user who performs the action. The original remains unchanged. Each action checks permission to read and edit the original and create its post type. Attachments, revisions, trashed items and unsaved auto-drafts are excluded. Duplication links are available for selected custom post types as well as posts and pages.

Terms are assigned by their existing IDs, only when the user can assign that taxonomy. Translation groups are not copied. Custom-field copying preserves repeated values, arrays and backslashes, but excludes editing locks, old URL metadata and Trash state. Disabling taxonomy or custom-field copying leaves normal WordPress and integration defaults in place. Related records in separate plugin tables, comments, revisions and attached files are not duplicated; complex plugin-managed objects may need that plugin's own duplication workflow.

A failed copy is removed when possible instead of being returned as a completed result. Successful copies remain after disabling the module; delete unwanted copies through the normal content interface.

Hide row and bulk actions by post type

  1. Open Content → Lists and enable the relevant module.
  2. Under Hide row actions, use each post type's checkbox group to select Edit, View / Preview, Quick Edit, Move to Trash, or Delete permanently.
  3. Under Hide bulk actions, select the types whose entire bulk action menus should disappear, including actions supplied by plugins.
  4. Save and inspect both a selected and an unselected content list. The two modules work independently.

These controls change native WordPress list interfaces. Media settings apply to the Media Library's list view. They do not remove title links, change roles or permissions, block direct URLs, or control custom administration screens such as independent order-management interfaces. Other row actions, including duplication, remain available unless their owning feature is disabled. A control has no visible effect when WordPress would not show that action for the item in the first place.

Add the user's role to the body

Enable User role body class under Content → General. On frontend pages that use WordPress's body_class() output, a signed-in user's primary role becomes a CSS class, such as administrator or editor. Signed-out visitors receive no role class. Existing classes and the user's roles are preserved, including when a template requests body classes more than once.

This is a styling aid, not an authorization check. Shared page caches must already separate authenticated responses from public pages. Use WordPress permissions when deciding whether a visitor may access content.

Keep trashed posts and comments

Enable Retain trashed content under Content → General. WordPress's scheduled Trash cleanup stops deleting old trashed posts and comments on this site. Manual permanent deletion remains available, and other scheduled tasks keep running.

This control does not enable Trash if the installation sets EMPTY_TRASH_DAYS to zero. It does not prevent independent cleanup performed by another plugin or an administrator. When you disable it, WordPress resumes its normal schedule; items already older than the retention period may be removed on the next run. Restore any items you need to keep before disabling it.

Troubleshooting and verification

  • A notice is missing: confirm the module and notice are enabled, the post type matches, and the editor's notices panel is visible. Check other metabox visibility settings.
  • Duplicate is missing: save the original first, check its selected type and confirm the user can read, edit and create that type. Trash and Media do not support this duplicator.
  • A duplicate is a draft: check Copy status and the current user's publishing permission.
  • A custom field or related record is absent: confirm custom-field copying is enabled and whether the integration stores its data as post metadata. Locks and operational metadata are intentionally excluded.
  • A hidden action is still reachable elsewhere: list visibility does not revoke permissions. Check that you are viewing a native list, not a plugin's separate screen.
  • Trash was deleted: check manual deletion, other cleanup tools and whether the module was disabled before the scheduled run.

For a complete check, save each configuration, reload its settings screen, compare selected and unselected types, and disable the module to confirm the interface or scheduled behavior returns. Existing duplicated content persists; stored roles, originals and permissions are not changed by these controls.

Supported duplication hooks

tool_duplicate_after_copy receives (int $new_id, WP_Post $source) once the content, selected terms and metadata have been copied and the final publication step has completed. The existing hook name is preserved for integrations. Use the new ID to attach any integration-owned data required by your workflow.

pom_tweaks_duplicate_excluded_meta_keys filters (array $keys, WP_Post $source) before custom fields are copied. Append integration-specific unique identifiers or operational keys to the supplied exclusions rather than replacing the default list. It runs only when custom-field copying is enabled.