Orphans

Description

To avoid line breaks in the incorrect position, the plugin fixes orphans’ positions and replaces space after orphan with a hard space. 

Orphan – a text composition error, which consists in leaving a lonely short word at the end or at the beginning of a verse, especially a single-character one. The word “lonely” here means separation from a closely related word by line breaks.

Asset image

Manuscript by Muffet, on Flickr

GitHub

The Orphans plugin is available also on GitHub – Orphans.

Screenshots

  • Options for entries.
  • Options for widgets.
  • Options for taxonomies.
  • Miscellaneous options.

Installation

There are 3 ways to install this plugin:

The super easy way

  1. Log in to your WordPress Admin panel.
  2. Go to: Plugins > Add New.
  3. Type ‘orphans’ into the Search Plugins field and hit Enter. Once found, you can view details such as the point release, rating and description.
  4. Click Install Now. After clicking the link, you’ll be asked if you’re sure you want to install the plugin.
  5. Click Yes, and WordPress completes the installation.
  6. Activate the plugin.
  7. A new menu Orphans in Appearance will appear in your Admin Menu.

The easy way

  1. Download the plugin (.zip file) on the right column of this page.
  2. In your Admin, go to the menu Plugins > Add.
  3. Select the button Upload Plugin.
  4. Upload the .zip file you just downloaded.
  5. Activate the plugin.
  6. A new menu Orphans in Appearance will appear in your Admin Menu.

The old and reliable way (FTP)

  1. Upload sierotki folder to the /wp-content/plugins/ directory.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.
  3. A new menu Orphans in Appearance will appear in your Admin Menu.

FAQ

When does this plugin replace spaces?

Plugin works when viewing the content and does not modify your content.

I have a problem with the plugin, or I want to suggest a feature. Where can I do this?

You can do it on Support Threads, but please add your ticket to Github Issues.

How to use this plugin on the custom field?

Use orphan_replace filter. Example code:

$value = apply_filters(
    'orphan_replace',
    get_post_meta($post_id, 'meta_key', true )
);

How to use this plugin on any string?

Use orphan_replace filter. Example code:

$value = apply_filters( 'orphan_replace', 'any string' );

How to change plugin capability?

By default to using this plugin you must have manage_options capability, which usually means site administrator. If you want to allow manage Orphans by “Editors” then you need to use other capabilities, e.g. unfiltered_html. You can use iworks_orphans_capability filter:

add_filter('iworks_orphans_capability', 'my_orphans_capability');
function my_orphans_capability($capability) {
    return 'unfiltered_html';
}

How to turn of replacement in my piece of code?

At the beginning of your block just add:

add_filter( 'orphan_skip_replacement', '__return_true' );

and at the end, to again turn on replacements:

remove_filter( 'orphan_skip_replacement', '__return_true' );

How can I change default orphans?

Please use iworks_orphan_terms filter. It is array of default orphans. You can remove, add or even replace whole array. For example, to remove words “oraz”, “na” and “”nie”, use code bellow:

add_filter( 'iworks_orphan_terms', 'remove_iworks_orphan_terms' );
function remove_iworks_orphan_terms( $terms ) {
    $default_orphans_to_remove = array( 'oraz', 'na', 'nie', );
    foreach( $default_orphans_to_remove as $value ) {
        if ( $key = array_search( $value, $terms ) ) {
            unset( $terms[ $key ] );
        }
    }
    return $terms;
}

How can I change the default orphan file?

The default file with definitions is located in the etc/ directory.

You can change it using the filter iworks_orphan_own_terms_file:

`
add_filter(
‘iworks_orphan_own_terms_file’,
function( $file ) {
return ‘<own path to file’;
}
);

Reviews

སྤྱི་ཟླ་བཅུ་པ། 3, 2024 1 reply
Great plugin, we recommend!
སྤྱི་ཟླ་དང་པ། 5, 2024 1 reply
To podstawowa wtyczka jaką zawsze instaluję na każdym WP. Nie wiem jak można sobie bez tego pluginu poradzić – pewnie fachowcy sobie radzą, ja nie. Kiedy zamieniłem Divi na Bricks Builder i okazało się, że Sierotki nie działają, dopiero odczułem jak są niezbędne. Napisałem do Marcina i mimo przerwy świąteczno-sylwestrowej, od razu wykrył problem i wszystko działa. Wielkie dzięki Marcin! Brawo!
སྤྱི་ཟླ་བརྒྱད་པ། 10, 2022 1 reply
Great plugin and support. From now on plugin works with WPBakery!
Read all 154 reviews

Contributors & Developers

“Orphans” is open source software. The following people have contributed to this plugin.

Contributors

“Orphans” has been translated into 2 locales. Thank you to the translators for their contributions.

Translate “Orphans” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

3.2.8 – 2024-08-21

3.2.7 – 2024-02-21

  • Integration with the Bricks builder (part of the Bricks Theme) has been added.
  • The iWorks Options module has been updated to version 2.9.1.
  • The iWorks Rate module has been updated to version 2.1.7.

3.2.6 – 2023-12-27

3.2.5 – 2023-11-30

3.2.4 – 2023-10-26

  • Handling of multiple term files has been added.
  • Handling short language codes has been added.
  • The EN terms file has been added—only one-letter and some two-letter words from Wiktionary.
  • Checking whether a data file has already been loaded to avoid multiple attempts to load it has been added.
  • The term cache will be cleared after updating the WPLANG option.
  • The iWorks Options module has been updated to version 2.8.7.
  • The iWorks Rate module has been updated to version 2.1.3.
  • The file terms-cs_CZ.txt has been renamed to terms-cs.txt.
  • The file terms-pl_PL.txt has been renamed to terms-pl.txt.

3.2.3 – 2023-09-04

  • The cache for orphans_indicator_options has been added. Props for Krystian Marcisz.
  • The filter orphans_indicator_options_use_cache has been added to allow cache turn-off.

3.2.2 – 2023-07-12

  • Data type check has been added. Props for LeoBullero.

3.2.1 – 2023-07-07

  • Integration with the Divi builder (part of the Divi Theme) has been added.

3.2.0 – 2023-07-05

  • Fixed missing replacements before and after any tag. Props for gierand.
  • The ability to choose a preset language file has been added.
  • The ability to use only your own defined terms has been added.
  • The Czech rules have been added.

3.1.3 – 2023-06-27

  • Integration with the Muffin builder (part of the beTheme) has been added. Props for waveman777.
  • The iWorks Options module has been updated to version 2.8.5.
  • The iWorks Rate module has been updated to version 2.1.2.

3.1.2 – 2023-03-10

  • Tags pre and code have been added to protected tags.
  • The issue with removing line ends has been fixed. Props for joannapl.

3.1.1 – 2023-03-07

  • The order of protected tags has been changed to avoid a replacement issue. Props for Against The Odds.

3.1.0 – 2023-03-06

  • Integration with the Polylang plugin has been added.
  • Switched from simple replacement to DOMDocument parsing and string replacement.
  • The ability to clear the terms cache when you enter the Orphans Settings Page has been added.
  • The deprecated data conversion method has been corrected.
  • The incorrect trim for the first letter “t” in own orphans has been corrected. Props for Michał Ruszczyk.
  • The orphan_get_terms filter has been added. It allows you to get current terms.
  • The orphan_replace_acf filter has been added. It allows you to turn off selected values in ACF fields.
  • The orphan_replace_gettext filter has been added. It allows you to turn off selected values in gettext related functions.
  • The translation function now includes the ability to replace text. The default setting is off.

3.0.5 – 2023-01-11

  • The translation function now includes the ability to replace text. The default setting is off.

3.0.4 – 2022-11-20

  • Handle space after year for short year format “r.”. Props for Mastafu Design
  • Added integration with “Goodlayers Core” on gdlr_core_escape_content filter.

3.0.3 – 2022-09-02

  • Handle ACF integration if it is network activated plugin. Props for maczek6000.
  • Changed iWorks Rate Module repository to GitHub.
  • Updated iWorks Rate to 2.1.1.

3.0.2 – 2022-08-06

  • Added integration with “WPBakery Page Builder” on vc_shortcode_output filter.

3.0.1 – 2022-07-18

  • Added tag attributes replacement protection. Props for krzyc.

3.0.0 – 2022-04-21

  • Added Transients API to avoid multiple read from terms.txt file.
  • Removed unused method add_help_tab().

2.9.11 – 2022-04-05

  • Updated iWorks Options to 2.8.3. (Fixed PHP 7.x compatibility).

2.9.10 – 2022-04-05

  • Updated iWorks Options to 2.8.3.
  • Updated iWorks Rate to 2.1.0.

2.9.9 – 2022-03-29

2.9.8 – 2022-02-05

  • Improved checking is plugin “Advanced Custom Fields” – removed usage of class_exists function.
  • Moved load_plugin_textdomain() function to allow load i18n even plugin is not active.

2.9.7 – 2022-02-05

  • Improved checking is plugin “Advanced Custom Fields” to avoid multiple calling function class_exists. Props for Piotr.
  • Remove duplicates from “terms to replace” list and sort this list.

2.9.6 – 2022-02-03

  • Added check for missing second param in the_title filter. Props for Zbyszek Zalewski

2.9.5 – 2022-02-02

  • Fixed missing replacements before and after any tag. Props for gierand.

2.9.4 – 2022-02-02

  • Added ability to turn off replacements on menu title elements. New option is in “Miscellaneous” tab.
  • Added orphan_allowed_filters to add ability to change allowed filters.
  • Fixed issue with Font Awesome replacements. Props for lewleo999
  • Improved replacement process to avoid change HTML tags params.

2.9.3 – 2022-01-20

  • Removed doubled “Donate” link on plugin page.
  • Updated iWorks Options to 2.8.0.

2.9.2 – 2022-01-19

  • Updated iWorks Options to 2.7.3.
  • Updated iWorks Rate to 2.0.6.

2.9.1 – 2021-12-09

  • Added integration with “Advanced Custom Fields” for fields types: “text”, “textarea”, “WYSIWYG”. Props for Kamil Lipiński for the tests.

2.9.0 – 2021-12-09

  • Added filter iworks_orphan_own_terms_file to add ability to change whole terms definition file.
  • Moved terms into etc/terms.txt.
  • Renamed file includes/iworks/orphan.php into includes/iworks/class-iworks-orphan.php.
  • Updated orphans list, based on Sierotka (typografia)

2.8.2 – 2021-12-03

  • Fixed problem with option “Keep numbers together” – it changed inline CSS too. Props for gierand.

2.8.1 – 2021-11-26

  • Added a widget blocks content to replacements.
  • Added filter iworks_orphan_terms (old one has a typo iworks_orphan_therms – but old one stays too).
  • Improved filtering defaults orphans – now it is filtered when we get it, not only on init.

2.8.0 – 2021-08-31

  • Fixed conflict with some plugins. Props for Adam Gruntkowski.
  • Updated iWorks Rate to 2.0.4.
  • Updated WordPress Options Class to version 2.7.1.

2.7.9 – 2021-06-23

  • Renamed directory vendor into includes.
  • Updated iWorks Rate to 2.0.1.

2.7.8 – 2021-01-13

  • Added orphan_replace filter to add ability to force replacements on any string.
  • Turned off content filters for admin area – it could mess with another plugins. Props for Zbyszek Zalewski.

2.7.7 – 2020-06-20

  • Added orphan_skip_replacement filter to force skip replacements. Check FAQ to know how to use it.

2.7.6 – 2020-06-08

  • Turned off replacements in feeds.
  • Turned off replacements in REST API.

2.7.5 – 2019-11-12

  • Fixed default values configuration.
  • Handled quotation mark before orphan.
  • Moved orphan’s filters at the end of run, to try to avoid different plugins replacements.
  • Split replacement rules to avoid problem with regular expression is too large.
  • Updated WordPress Options Class to version 2.6.8

2.7.4 – 2018-03-16

  • Fixed problem with too greedy number replacement.

2.7.3 – 2018-03-15

  • Fixed problem with $post object. Props for adpawl
  • Fixed space after a number, but before a word. Props for M. Hawranek.
  • Fixed too early translation load, it causes sometimes missing translation.
  • Updated WordPress Options Class to version 2.6.5.

2.7.2 – 2018-02-13

  • Added html entities handling.
  • Added WooCommerce short description, which use they own filter.
  • Fixed problem with orphan directly after orphan.
  • Refactored input data.
  • Updated WordPress Options Class to version 2.6.4.

2.7.1 – 2017-12-22

  • Fixed a problem with array handling, when document contains scripts or styles.

2.7.0 – 2017-06-29

  • Added custom fields – now you can easily add custom field name to the configuration.
  • Added words: ‘albo’, ‘bez’, ‘czy’, ‘lecz’, ‘nie’, ‘niech’, ‘przez’, ‘tak’, ‘tylko’, ‘więc’ base on Sierotka

2.6.9 – 2017-05-24

  • Fixed a problem with class declaration. Props for gierand

2.6.8 – 2017-05-23

  • Added author description to replacements.
  • Added a taxonomies title and description to replacements.
  • Fixed a problem with preg_replace() “Compilation failed: range out of order”.
  • Use WordPress Options Class to handle new options screen.

2.6.7 – 2017-05-09

  • Allow to apply replacement to all languages by using filter `iworks_orphan_apply_to_all_languages’ set on true.
  • Fixed rate module.

2.6.6.1 – 2017-04-30

  • Fixed wrong regexp replacement.

2.6.6 – 2017-04-30

  • Avoid to replace “script” and “styles” content. Props for m1nified
  • Added a widget title to replacements.
  • Added a widget text to replacements (it work only for the widget text).

2.6.5 – 2016-11-01

  • Rollback to 2.6.3, because 2.6.4 broke images.

2.6.4 – 2016-11-01

  • Added symbols, like FX-10, F-800, F-600-K3-Z. “-” is replaced by ‑ char. Props for Marcin

2.6.3 – 2016-10-25

  • Implement WP syntax rules for PHP files.
  • Added “Call for ratings” on settings page.

2.6.2 – 2016-02-27

  • Fixed a problem with ignored option for numbers. Props for Kacper
  • Added check site or entry language to avoid replacing if language is other then Polish. It is one exception: numbers.

2.6.1 – 2016-01-11

  • Fixed a problem with non-breakable space. Replace space after number to space between numbers.

2.6 – 2016-01-09

  • Change language domain from iworks_orphan to plugin name `sierotki’ to be compatible with i18n WordPress rules.
  • Added activate plugin hook to change options autoload status.
  • Added deactivate plugin hook to change options autoload status.
  • Added filter iworks_orphans_capability, Props for Cezary Buliszak.
  • Added non-breakable space after numbers.
  • Added uninstall plugin hook.
  • Update screenshots.

2.5 – 2015-11-06

  • IMPROVEMENT: added filter iworks_orphan_replace

2.4 – 2015-02-12

  • Added hard space between number (year) and polish year shortcut “r.”
  • Added WooCommerce product title and short description to available options. Props for Dominik Kawula

2.3.2 – 2014-09-12

  • Fixed error in options array

2.3.1 – 2014-09-12

  • Checked option array for non existing hash.
  • Updated screenshots.

2.3 – 2014-07-10

  • IMPROVEMENT: added all forms of word number

2.2 – 2014-01-24

  • IMPROVEMENT:added links to forum
  • IMPROVEMENT:checked capability with WP 3.8

2.1 – 2013-11-09

  • IMPROVEMENT:checked capability with WP 3.6
  • REFACTORING: implement PSR-0 rules to orphan class

2.0.2 – 2013-08-20

  • BUGFIX: fixed replacement for single letter orphan after orphan. Props for Szymon Skulimowski
  • IMPROVEMENT:checked capability with WP 3.6
  • IMPROVEMENT:added help and related section

2.0.1 – 2013-07-10

  • IMPROVEMENT:added numbers

2.0 – 2012-08-12

  • BUGFIX: fixed permissions to configuration page
  • BUGFIX: fixed replacement for strings starting with a orphan
  • REFACTORING: rewrite code to the class
  • IMPROVEMENT:added some shorts of academic degree
  • IMPROVEMENT:massive increase orphans dictionary. Props for adpawl

1.4.2 – 2012-03-02

  • NEW: added the_title filter.

1.4.1 – 2011-02-24

  • NEW: Trim chars.
  • BUGFIX: Fixed multi coma use.

1.4 – 2011-02-24

  • NEW: Added user defined orphans.
  • BUGFIX: Corrected capability name.

1.3 – 2011-02-19

  • NEW: Added option page to turn on/off filtering in content, excerpt or comments.
  • NEW: Added “(” as char before a orphan.

1.2 – 2011-02-18

  • NEW: Added filter comment_text.
  • BUGFIX: Capital letters was missing by plugin.

1.1 – 2011-02-17

  • Abandoning elegant anonymous function, which requires PHP 5.3.0 🙁
  • NEW: Added filter to the_excerpt.

1.0.2 – 2011-02-17

  • NEW: Added “>” as char before a orphan.

1.0.1 – 2011-02-16

  • NEW: Added word “to”.

1.0 – 2011-02-16

  • INIT