Title: Saeidbakhsh Core Settings
Author: Ahmadreza Saeidbakhsh
Published: <strong>September 1, 2026</strong>
Last modified: September 2, 2026

---

Search plugins

![](https://ps.w.org/saeidbakhsh-core-settings/assets/banner-772x250.png?rev=3676585)

![](https://ps.w.org/saeidbakhsh-core-settings/assets/icon-256x256.png?rev=3676454)

# Saeidbakhsh Core Settings

 By [Ahmadreza Saeidbakhsh](https://profiles.wordpress.org/saeidbakhsh/)

[Download](https://downloads.wordpress.org/plugin/saeidbakhsh-core-settings.1.5.8.zip)

 * [Details](https://wordpress.org/plugins/saeidbakhsh-core-settings/#description)
 * [Reviews](https://wordpress.org/plugins/saeidbakhsh-core-settings/#reviews)
 *  [Installation](https://wordpress.org/plugins/saeidbakhsh-core-settings/#installation)
 * [Development](https://wordpress.org/plugins/saeidbakhsh-core-settings/#developers)

 [Support](https://wordpress.org/support/plugin/saeidbakhsh-core-settings/)

## Description

Saeidbakhsh Core Settings provides a small set of conservative WordPress behaviors
that can be enabled independently:

 * Disable Emojis
 * Disable Embeds
 * Remove WordPress Generator Version
 * Revision Limit
 * Disable XML-RPC
 * Comment controls
 * Remove Shortlink
 * Remove Feed Discovery Links
 * Disable Self Pingbacks

All tweaks are OFF by default.

Revision Limit protects revisions that existed before the setting was enabled by
default. A separate, destructive, and OFF-by-default option is available for users
who intentionally want the limit applied to older revisions during future post updates.

Comment controls are separated into two independent settings:

 * Disable New Comments
 * Hide Existing Comments on the Frontend

Existing comments are never deleted and remain manageable in wp-admin.

The installable plugin is self-contained. It requires no Composer runtime, vendor
directory, JavaScript build chain, remote service, telemetry, cron job, or third-
party PHP library.

The plugin uses documented WordPress APIs and PHP 7.4-compatible runtime syntax 
to keep its implementation small, predictable, and suitable for long-term maintenance.

The plugin is translation-ready. WordPress.org language packs are provided through
translate.wordpress.org; PO/MO translation catalogs are intentionally not bundled
in the plugin ZIP.

### Languages

Saeidbakhsh Core Settings is translation-ready and uses the `saeidbakhsh-core-settings`
text domain. Translations for WordPress.org releases are managed through translate.
wordpress.org and delivered as WordPress language packs. Translation catalog files
are not bundled in the plugin ZIP.

### Third-party assets

Vazirmatn Variable Font 33.003
 Copyright 2015 The Vazirmatn Project Authors (https://
github.com/rastikerdar/vazirmatn). License: SIL Open Font License 1.1. See assets/
fonts/OFL.txt. The bundled WOFF2 is a web-compressed copy of the supplied variable
TTF (weight axis 100-900) and loads only on the Saeidbakhsh Core Settings settings
page for Persian and Arabic admin locales.

### Developer

Developed and maintained by Ahmadreza Saeidbakhsh.

## Installation

 1. In wp-admin, go to Plugins > Add New > Upload Plugin.
 2. Upload the Saeidbakhsh Core Settings ZIP file.
 3. Activate Saeidbakhsh Core Settings.
 4. Go to Settings > Core.
 5. Enable only the behaviors you want.

The Core settings page is placed directly below General. Its sections switch without
reloading the page, and changes made across every section are saved together.

## FAQ

### Are any tweaks enabled automatically?

No. All tweaks are OFF by default.

### Does uninstall delete posts, comments, or revisions?

No. Uninstall removes only the plugin’s own stored options. It does not delete posts,
comments, revisions, or other site content.

### Does Remove WordPress Generator Version remove ?ver= from CSS or JavaScript URLs?

No. The setting targets WordPress generator metadata only. Asset version query strings
are intentionally left unchanged because they are useful for cache invalidation 
and are unrelated to generator metadata.

### How do the comment controls behave?

Disable New Comments prevents future comments and pings from being accepted.

Hide Existing Comments on the Frontend independently hides stored comments and their
displayed counts from public-facing comment queries.

Neither setting deletes existing comment rows. Existing comments remain available
for management in wp-admin.

### Does Disable Emojis delete emoji from posts or comments?

No. It disables WordPress emoji assets and hides emoji characters from public rendered
output.

Stored content is not rewritten, and wp-admin, REST, AJAX, cron, and XML-RPC data
are not modified by the output transformation.

### Does Disable XML-RPC only hide the X-Pingback header?

No. When enabled, direct requests to xmlrpc.php are terminated with HTTP 403 before
WordPress creates the XML-RPC server.

XML-RPC methods and the X-Pingback header are also disabled as defense in depth.

### How does Revision Limit protect older revisions?

When Revision Limit is enabled, the plugin records a baseline representing revisions
that already exist.

By default, those pre-existing revisions are protected and the configured limit 
applies only to revisions created after the baseline.

The separate Also prune older revisions option intentionally allows WordPress Core
to apply the configured limit to older revisions during future post updates. This
option is destructive and OFF by default.

### Does Disable Embeds disable the entire REST API?

No. The general WordPress REST API remains available.

When Disable Embeds is enabled, oEmbed retrieval is short-circuited, WordPress posts
are marked non-embeddable, only oEmbed-related REST endpoints are removed, saved
Embed blocks and [embed] shortcodes fall back to plain links, and direct /embed/
views redirect to the canonical local post URL.

### Does Disable Self Pingbacks affect external pingbacks?

No. The setting prevents self-pingbacks while preserving external ping behavior.

Standard HTTP and HTTPS URLs are matched appropriately while non-standard ports 
and separate installations on the same host remain distinct.

### Can developers extend the plugin?

Yes. The plugin provides a modular extension API.

See docs/developer-api.md for the module contract and extension hooks. New features
can be implemented as modules without modifying the plugin bootstrap.

### Does the plugin require Composer or third-party libraries?

No. The production plugin has no Composer runtime dependency, vendor directory, 
third-party PHP library, JavaScript framework, remote service, or package-manager
requirement.

### Can this plugin be guaranteed to run unchanged for many years?

No software that depends on future versions of WordPress, PHP, web servers, or hosting
environments can honestly guarantee indefinite compatibility.

Saeidbakhsh Core Settings is deliberately designed to reduce long-term maintenance
risk by using documented WordPress APIs, PHP 7.4-compatible runtime syntax, standard
WordPress internationalization APIs, no external runtime dependencies, no remote
services, and no intentional reliance on private WordPress internals.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Saeidbakhsh Core Settings” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Ahmadreza Saeidbakhsh ](https://profiles.wordpress.org/saeidbakhsh/)

[Translate “Saeidbakhsh Core Settings” into your language.](https://translate.wordpress.org/projects/wp-plugins/saeidbakhsh-core-settings)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/saeidbakhsh-core-settings/),
check out the [SVN repository](https://plugins.svn.wordpress.org/saeidbakhsh-core-settings/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/saeidbakhsh-core-settings/)
by [RSS](https://plugins.trac.wordpress.org/log/saeidbakhsh-core-settings/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.5.8

 * Rebuilt the settings screen with a clearer responsive layout and stronger visual
   hierarchy.
 * Made section navigation instantaneous without reloading the page, with accessible
   keyboard controls and direct-link URL updates.
 * Combined all sections into one settings form so changes made across multiple 
   sections are saved in a single action.
 * Added an unsaved-changes indicator and a navigation warning that protects edits
   until they are saved.
 * Kept the save confirmation in a stable position below the screen title and matched
   it to the settings interface.
 * Added translator context for placeholder strings and sanitized submitted settings
   arrays at the request boundary.
 * Restored the developer API document referenced by the plugin readme to the installable
   package.
 * Preserved all existing option keys, extension hooks, module contracts, capabilities,
   nonce checks, defaults, and runtime tweak behavior.

#### 1.5.7

 * Renamed the public plugin to Saeidbakhsh Core Settings and changed the prospective
   WordPress.org slug/text domain to `saeidbakhsh-core-settings` following Plugin
   Review Team feedback.
 * Renamed the plugin directory, main plugin file, Settings page slug, plugin header,
   readme title, and every gettext text-domain reference to the new slug.
 * Removed bundled PO, MO, and POT translation files so WordPress.org translations
   can be distributed through translate.wordpress.org.
 * Added the developer API document referenced by the readme and kept the established`
   swpct_*` option keys, hooks, helper functions, and PHP namespace for compatibility.
 * No tweak behavior was enabled by default and no remote service, telemetry, cron
   job, database table, JavaScript framework, or third-party PHP dependency was 
   added.

#### 1.5.6

 * Improved Vazirmatn font coverage across Persian and Arabic plugin interface elements.
 * Localized the save button through the plugin text domain and improved Persian/
   Arabic interface typography.

#### 1.5.5

 * Bundled the Vazirmatn variable font locally for Persian and Arabic admin locales,
   with no external font request.
 * Improved Persian and Arabic interface typography and developer-profile presentation.

#### 1.5.4

 * Simplified settings persistence by preserving inactive-tab values on the server.
 * Reduced unnecessary internal settings code while preserving the public API, option
   names, and module behavior.

#### 1.5.3

 * Hardened Settings API output escaping for extensible field titles.
 * Added developer API documentation and aligned release metadata with the public
   extension contract.

#### 1.5.2

Hardened WordPress generator-meta suppression against generator tags added by late
wp_head integrations without affecting unrelated generator tags or asset version
query strings.
 Improved public-display request detection so emoji and hidden-comment
transformations remain outside REST responses and internal REST preloads. Simplified
revision-baseline queries by relying on documented get_posts() default filter behavior,
with no change to runtime behavior. Added no runtime dependencies, remote calls,
database tables, cron jobs, endpoints, JavaScript, or CSS.

#### 1.5.1

Fixed nested or non-scalar settings sanitizer input that could trigger an Array 
to string conversion warning.
 Hardened WordPress generator suppression by removing
late wp_generator registrations and filtering official get_the_generator_* output
types in addition to the_generator. Added no runtime dependencies, services, database
tables, cron jobs, REST routes, AJAX endpoints, JavaScript, or CSS.

#### 1.5.0

Fixed Disable XML-RPC so direct xmlrpc.php requests terminate with HTTP 403 before
WordPress creates the XML-RPC server, while method and header filters remain as 
defense in depth.
 Fixed Disable Emojis so WordPress emoji assets are disabled and
emoji characters are hidden from public rendered output without modifying stored
content or affecting wp-admin, REST, AJAX, or cron data. Reworked Revision Limit
around WordPress’ documented pre-deletion filter. Revisions that already exist when
the limit is enabled are protected by a stored baseline; only revisions created 
after enablement are eligible for pruning by default. Added the separate, destructive,
and OFF-by-default Also prune older revisions setting for users who intentionally
want the limit applied to older revisions during future post updates. Split comment
controls into Disable New Comments and the independent Hide Existing Comments on
Frontend setting. Existing comments are never deleted and remain manageable in wp-
admin. Hardened Disable Embeds to short-circuit oEmbed HTTP retrieval, mark posts
as non-embeddable, remove only oEmbed REST endpoints, convert saved Embed blocks
and [embed] shortcodes to plain links, redirect direct /embed/ views to canonical
local post URLs, and keep the general REST API enabled. Renamed Remove WP Version
to Remove WordPress Generator Version so the setting does not imply that asset ?
ver= query strings are modified. Improved self-pingback matching across standard
HTTP and HTTPS ports while preserving non-standard ports and separate WordPress 
installations on the same host. Returned the main composition boot to init priority
5, preserving the documented 1.x extension lifecycle while still blocking XML-RPC
before xmlrpc.php creates its server. Added no runtime dependencies, remote calls,
custom database tables, CSS, JavaScript, package managers, telemetry, or update 
services.

#### 1.4.3

Sanitized submitted settings values at the request boundary before the existing 
field-level validator runs, resolving the reported Plugin Check warning.
 Localized
the settings-page title across all ten bundled locales. Localized the developer 
name for Persian and Arabic; other bundled locales retain Ahmadreza Saeidbakhsh.
Kept all nine tweak modules and runtime dependency boundaries unchanged. Replaced
the deprecated string autoload value used during activation with the current boolean
WordPress API form.

#### 1.4.2

Replaced the options.php submission path with a dedicated admin-post.php handler
using documented WordPress APIs, explicit capability checks, a nonce, update_option(),
and wp_safe_redirect().
 Rendered the save confirmation once, directly below the
plugin page title, using native WordPress notice classes. No custom CSS or JavaScript
was added. Removed the settings screen’s dependency on WordPress’ legacy admin-notice
relocation behavior. Preserved the existing option name, tab-preservation behavior,
sanitization, module API, and all nine conservative tweaks. Added no external runtime
dependencies, network calls, package managers, frameworks, database tables, cron
jobs, or compiled assets.

#### 1.4.1

Fixed duplicate Settings API success notices by relying on WordPress Core’s native
notice rendering for Settings screens.
 Simplified developer attribution so the 
developer name itself links to the official WordPress.org profile. Updated all ten
bundled translations and compiled MO files. No tweak behavior, option names, hooks,
module contracts, or dependencies changed.

#### 1.4.0

Renamed the public plugin name and prospective WordPress.org slug during an earlier
pre-release review to address naming and trademark ambiguity.
 Kept the existing
swpct_* option keys, hooks, helper functions, and PHP namespace for upgrade and 
extension compatibility. Raised the minimum WordPress version to 6.8 and removed
the manual text-domain loader call. WordPress 6.8+ supports just-in-time loading
for bundled plugin translations through the Text Domain and Domain Path headers.
Reworked read-only tab selection to avoid the nonce-verification false positive 
reported by Plugin Check while continuing to sanitize the requested tab. Moved multisite
uninstall-loop state into a local uninstall function while retaining bounded 100-
site batches. Limited readme.txt to five directory tags. Added a localized developer
credit to the plugin settings page, linking to the official WordPress.org profile
for Ahmadreza Saeidbakhsh. Rebuilt all ten PO/MO catalogs for the new slug, branding,
and developer credit. Corrected the pre_ping callback registration so it requests
only the single argument it consumes. Added no new tweak modules; all nine conservative
behaviors remain OFF by default.

#### 1.3.0

Renamed the Settings submenu item to Core and placed it directly below General using
WordPress’ documented submenu position parameter.
 Reorganized the settings screen
into native WordPress admin tabs: Content, Frontend, Discovery, and Connections.
Added cross-tab form preservation so saving one tab cannot reset values stored on
another tab. Kept the settings screen dependency-free and visually native by using
WordPress Settings API markup and built-in nav-tab classes only. Set the plugin 
author to Ahmadreza Saeidbakhsh and the Author URI to the official WordPress.org
profile. Updated readme.txt contributor metadata to saeidbakhsh. Updated all ten
bundled translations for the revised interface. Added no new tweak modules; the 
conservative long-term feature set remains unchanged.

#### 1.2.0

Added Remove Shortlink.
 Added Remove Feed Discovery Links without disabling feeds.
Added Disable Self Pingbacks while preserving external ping behavior. Kept all new
features OFF by default. Deliberately excluded higher-maintenance or cross-feature
tweaks from the long-term core feature set. Expanded translations across all ten
bundled locales and extended regression-test coverage.

#### 1.1.0

Added complete bundled gettext translations for ten locales: fa_IR, ar, de_DE, es_ES,
fr_FR, pt_BR, ru_RU, zh_CN, ja, and tr_TR.
 Added editable PO files, compiled MO
files, and a POT template. Moved text-domain loading and plugin boot to safe init
timing for modern WordPress translation compatibility. Added translation-safe default_settings()
support for built-in modules while retaining the 1.0 fields() fallback for third-
party modules. Hardened checkbox sanitization so only the expected submitted value
can enable a toggle. Batched multisite uninstall cleanup in groups of 100 sites.
Updated compatibility metadata through WordPress 7.1 while retaining PHP 7.4-compatible
runtime syntax. Expanded dependency-free QA, architecture, lifecycle, and long-term
compatibility documentation. Removed development package-manager metadata from the
installable release process; the production ZIP contains no vendor directory or 
Composer dependency.

#### 1.0.0

Added a modular plugin foundation and dependency-free autoloader.
 Added Disable
Emojis. Added Disable Embeds. Added Remove WP Version. Added Revision Limit. Added
Disable XML-RPC. Added Disable Comments. Added a Settings API management screen.
Added extension hooks and a ModuleInterface developer API. Added safe uninstall 
handling, including multisite cleanup. Added dependency-free smoke tests and development
tooling metadata.

## Meta

 *  Version **1.5.8**
 *  Last updated **43 minutes ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.8 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [comments](https://wordpress.org/plugins/tags/comments/)[Embeds](https://wordpress.org/plugins/tags/embeds/)
   [performance](https://wordpress.org/plugins/tags/performance/)[revisions](https://wordpress.org/plugins/tags/revisions/)
   [xml-rpc](https://wordpress.org/plugins/tags/xml-rpc/)
 *  [Advanced View](https://wordpress.org/plugins/saeidbakhsh-core-settings/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/saeidbakhsh-core-settings/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/saeidbakhsh-core-settings/reviews/)

## Contributors

 *   [ Ahmadreza Saeidbakhsh ](https://profiles.wordpress.org/saeidbakhsh/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/saeidbakhsh-core-settings/)