Descripción
Smart RTL Post allows you to easily apply RTL styling to selected posts, pages, and custom post types.
Features
- Enable RTL per post
- Gutenberg editor support
- Custom post types support
- Lightweight plugin
- Clean uninstall
- No performance impact
-
Custom fonts support
-
Works on Posts and Pages (and any post type via filter hook)
- Native Block Editor (Gutenberg) sidebar panel — no Classic Editor required
- Settings page to choose default direction, font, font size, and line height
- Shortcode
[rtl]your text[/rtl]for inline RTL content inside any post - Google Fonts support: Noto Nastaliq Urdu, Scheherazade New, Amiri, Lateef
- CSS only loaded when actually needed (performance friendly)
- RTL styles scoped to content area only — navigation and header stay unaffected
- Developer-friendly:
smart_rtl_supported_post_typesfilter to add custom post types - Clean uninstall — removes all options and post meta when deleted
Shortcode Usage
Use inside any post or page:
[rtl]Your text here[/rtl]
Add Custom Post Type Support
Add this to your theme’s functions.php:
add_filter( 'smart_rtl_supported_post_types', function( $types ) {
$types[] = 'product';
return $types;
} );
`
License
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 or later.
For more details, visit: https://www.gnu.org/licenses/gpl-2.0.html
Instalación
- Upload the
smart-rtl-postfolder to/wp-content/plugins/ - Activate the plugin from the Plugins page in WordPress
- Go to Settings > Smart RTL Post to configure defaults
- Edit any post or page and select the direction from the sidebar
FAQ
-
Does this work with the Block Editor (Gutenberg)?
-
Yes. A native sidebar panel appears in the Document Settings for both Classic Editor and Block Editor.
-
Can I use it on WooCommerce product pages?
-
Not by default, but you can easily add any custom post type using the
smart_rtl_supported_post_typesfilter (see Description). -
Will this slow down my site?
-
No. The CSS file is only loaded on pages where RTL direction is actually enabled.
-
Which fonts are available?
-
Noto Nastaliq Urdu, Scheherazade New, Amiri, Lateef, and a System Serif (no Google Fonts) option.
-
No. Since v1.3.0 the RTL direction is scoped to post content areas only. Your header, navigation menus, and footer are not affected.
-
What happens when I delete the plugin?
-
All options and post meta are automatically removed from the database.
Reseñas
Colaboradores y desarrolladores
«Smart RTL Post» es un software de código abierto. Las siguientes personas han colaborado con este plugin.
ColaboradoresTraduce «Smart RTL Post» a tu idioma.
¿Interesado en el desarrollo?
Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.
Registro de cambios
1.5.1
- Fixed: CSS inline values (font_size, line_height) explicitly re-sanitized before injection — absint() and range clamp added
- Fixed: WordPress.org submission zip now uses correct folder name ‘smart-rtl-post’ (no version suffix)
- Confirmed: WP_UNINSTALL_PLUGIN check present in uninstall.php
- Confirmed: Plugin slug, Text Domain, and load_plugin_textdomain are all ‘smart-rtl-post’ — consistent
- Confirmed: No raw variable outputs — all echo uses esc_html/esc_attr/esc_url/wp_kses_post
1.5.0
- Added: register_activation_hook — sets default options on clean install using add_option() with autoload=no
- Added: autoload=false on all register_setting() calls (WP 6.0+) — prevents options loading on every page, improves performance
- Added: readme.txt tags now include ‘direction’ and ‘gutenberg’ for better WordPress.org search visibility
- Confirmed: WP_UNINSTALL_PLUGIN security check already present in uninstall.php
- Confirmed: CSS loads conditionally — only on RTL posts or when [rtl] shortcode detected
1.4.2
- Fixed: transition_post_status condition tightened — now only fires when status changes exactly TO publish FROM non-publish (avoids publishdraft, publishtrash edge cases)
- Fixed: Multisite uninstall now uses batch processing (100 sites per loop) — prevents server hang on large networks
- Fixed: Added wp-block-code to CSS RTL selectors
- Fixed: Version bumped in rtl-style.css, block-editor.js, and SMART_RTL_VERSION constant — all in sync
- Fixed: .pot file updated to version 1.4.2; all 20 strings verified with correct text-domain
- Fixed: readme.txt Stable tag matches plugin Version header — WordPress.org consistency
1.4.1
- Fixed: Version comments in rtl-style.css and block-editor.js updated to 1.4.1
- Fixed: wp_insert_post replaced with transition_post_status hook — default direction now only saves on actual publish/schedule, not on every draft save
- Fixed: Multisite support added to uninstall.php — all sub-sites cleaned up on network delete
- Fixed: Added missing Gutenberg block selectors: wp-block-table, wp-block-group, wp-block-columns, wp-block-column, wp-block-cover, wp-block-media-text
- Added: languages/smart-rtl-post.pot translation template file for Urdu/Pashto/Arabic translators
1.4.0
- Fixed: Default direction now saved to database on first publish (was only shown in UI before)
- Fixed: Gutenberg detection now uses reliable use_block_editor_for_post_type() instead of get_current_screen()
- Fixed: line-height setting was registered but never actually applied — now works correctly
- Fixed: Shortcode CSS now loads even in LTR posts (has_shortcode() detection added)
- Fixed: Google Fonts now properly enqueued via wp_enqueue_style (font was named but never loaded)
- Fixed: Shortcode [rtl] inline styles replaced with CSS class for better SEO and performance
- Fixed: .smart-rtl-inline now inherits font-family, font-size, line-height from settings
1.3.1
- Improved
get_current_screen()safety check to prevent rare admin errors - Improved
auth_callbackto use post-specificedit_postcapability (WordPress review standard) - Added
wp_style_is()check beforewp_add_inline_style()for safer CSS injection - Added explicit
load_plugin_textdomain()for non-WordPress.org distributions - Added Settings link in Plugins list page for easier access
1.3.0
- Added native Block Editor (Gutenberg) sidebar panel via
PluginDocumentSettingPanel - Added Font Size setting (14 – 32px, default 18px) — useful for Urdu/Pashto readability
- Fixed shortcode: now uses saved font setting instead of hardcoded font families
- Fixed CSS scope: RTL direction no longer applied to full body (navigation/header unaffected)
- Added
uninstall.php— cleans up all options and post meta on plugin deletion
1.2.0
- Added support for Pages (not just Posts)
- Added Settings page (default direction, font chooser, line height)
- Added
[rtl]...[/rtl]shortcode for inline RTL text - CSS now loads conditionally — only on RTL pages
- Google Fonts support (Noto Nastaliq Urdu, Scheherazade New, Amiri, Lateef)
- Improved CSS to target common block editor content wrappers
- Added
smart_rtl_supported_post_typesfilter for developers - Added
Requires PHP: 7.4header
1.0.0
- Initial release.
