This plugin allows you to define words or phrases that, whenever they appear in your posts or pages, get automatically linked to the URLs of your choosing. For instance, wherever you may mention the word "WordPress", that can get automatically linked as "
WordPress".
Additional features of the plugin controlled via settings and filters:
- Text linkification can be enabled for comments (it isn't by default)
- Text linkification can be made case sensitive (it isn't by default)
- Text linkification can be limited to doing only one linkification per term, per post (by default, all occurrences of a term are linkified)
- Text linkification links can be set to open in a new window (it isn't by default)
You can also link multiple terms to the same link and only define that link once in the settings via use of a special link syntax.
A number of filters exist to programmatically customize the behavior of the plugin, all of which are documented.
Links:
Plugin Homepage |
Plugin Directory Page |
GitHub |
Author Homepage
1.9.1 (2018-07-19)
- Fix: Ensure
mb_*
functions aren't used when not available
- Fix: Prevent conflicts with oembeds by firing at a lower hook priority
- New: Add a unit test related to multibyte text
1.9 (2018-07-05)
Highlights:
- This release adds a setting for links to open in a new window, adds support for linkable text spanning multiple lines in your post, adds a filter for customizing link attributes, improves performance, and makes numerous behind-the-scenes improvements and changes.
Details:
- New: Add setting to set if links should open in a new window/tab
- New: Add filter 'c2c_linkify_text_link_attrs' for adding attributes to links
- New: Add support for finding linkable text that may span more than one line or consist of internal spaces
- Fix: Improve handling of removing links within links
- Change: Improve performance by checking for substring match for phrase to linkify before doing much work
- Change: Update plugin framework to 048
- 048:
- When resetting options, delete the option rather than setting it with default values
- Prevent double "Settings reset" admin notice upon settings reset
- 047:
- Don't save default setting values to database on install
- Change "Cheatin', huh?" error messages to "Something went wrong.", consistent with WP core
- Note compatibility through WP 4.9+
- Drop compatibility with version of WP older than 4.7
- 046:
- Fix
reset_options()
to reference instance variable $options
- Note compatibility through WP 4.7+
- Update copyright date (2017)
- 045:
- Ensure
reset_options()
resets values saved in the database
- 044:
- Add
reset_caches()
to clear caches and memoized data. Use it in reset_options()
and verify_config()
- Add
verify_options()
with logic extracted from verify_config()
for initializing default option attributes
- Add
add_option()
to add a new option to the plugin's configuration
- Add filter 'sanitized_option_names' to allow modifying the list of whitelisted option names
- Change: Refactor
get_option_names()
- 043:
- Disregard invalid lines supplied as part of hash option value
- Change: Bail early if filtering disables linking of the given text
- Change: Prevent PHP warnings by ensuring array elements exist before use
- Change: Cast return values of hooks to expected data types
- Change: Improve setting page help text
- New: Add README.md
- New: Add GitHub link to readme
- Change: Store setting name in constant
- Unit tests:
- Change: Improve test initialization
- Change: Improve tests for settings handling
- Change: Default
WP_TESTS_DIR
to /tmp/wordpress-tests-lib
rather than erroring out if not defined via environment variable
- Change: Enable more error output for unit tests
- New: Add more tests
- New: Add header comments to bootstrap
- Change: Note compatibility through WP 4.9+
- Change: Drop compatibility with version of WP older than 4.7.
- Change: Tweak plugin description
- Change: Rename readme.txt section from 'Filters' to 'Hooks'
- Change: Modify formatting of hook name in readme to prevent being uppercased when shown in the Plugin Directory
- Change: Update installation instruction to prefer built-in installer over .zip file
- Change: Update copyright date (2018)
1.8 (2016-05-16)
- New: Ensure longer, more precise link strings match before shorter strings that might also match, regardless of order defined.
- New: Linkify text within shortcode content, but not within the shortcode tags themselves.
- New: Add $text_to_link as additional optional argument to 'c2c_linkify_text_linked_text' filter.
- Bugfix: Fix being able to limit text replacements to just once a post.
- Bugfix: Honor setting to limit text replacements to just once a post for multibyte strings.
- Bugfix: Preserve capitalization of source string being linkified. Fixes case-sensitive matches where the source string is differently cased than defined in setting.
- Change: Update plugin framework to 043:
- Change class name to c2c_LinkifyText_Plugin_043 to be plugin-specific.
- Disregard invalid lines supplied as part of a hash option value.
- Set textdomain using a string instead of a variable.
- Don't load textdomain from file.
- Change admin page header from 'h2' to 'h1' tag.
- Add
c2c_plugin_version()
.
- Formatting improvements to inline docs.
- Change: Add support for language packs:
- Set textdomain using a string instead of a variable.
- Remove .pot file and /lang subdirectory.
- Remove 'Domain Path' plugin header.
- Change: Declare class as final.
- Change: Add more unit tests.
- Change: Explicitly declare methods in unit tests as public or protected.
- Change: Discontinue unnecessary use of
empty()
.
- Change: Minor code reformatting (spacing).
- Change: Minor documentation tweaks.
- Change: Note compatibility through WP 4.5+.
- Change: Remove support for versions of WordPress older than 4.1.
- Change: Update copyright date (2016).
- Change: Prevent direct invocation of test file.
- Change: Prevent web invocation of unit test bootstrap.php.
- New: Document 'c2c_linkify_text_linked_text' filter in readme.
- New: Create empty index.php to prevent files from being listed if web server has enabled directory listings.
- New: Add LICENSE file.
1.7 (2015-02-20)
- Improve support of '&' in text to be linked by recognizing its encoded alternatives ('&', '&') as equivalents
- Prevent linkification of text if the provided link doesn't look anything like a link
- Change regex delimiter from '|' to '~'
- Minor refactoring of multibyte handling
- Add to and improve unit tests
- Add help text under primary textarea mentioning the term referencing feature
- Minor documentation changes throughout
1.6 (2015-02-12)
- Prevent text replacements from taking place within shortcode attributes or content. props @rbonk
- Support linkifying multibyte strings. NOTE: Multibyte strings don't honor limiting their replacement within a piece of text to once
- Use preg_quote() to escape user input used in regex
- Update plugin framework to 039
- Add check to prevent execution of code if file is directly accessed
- Minor plugin header reformatting
- Minor code reformatting (spacing, bracing)
- Change documentation links to wp.org to be https
- Add an FAQ question
- Note compatibility through WP 4.1+
- Update copyright date (2015)
- Add an FAQ question
- Add more unit tests
- Add plugin icon
- Regenerate .pot
1.5 (2014-01-04)
- Add setting to allow limiting linkification to once per term per text
- Add filter 'c2c_linkify_text_replace_once'
- Add ability for a term to use another term's link
- Change to just-in-time (rather than on init) determination if comments should be filtered
- Add linkify_comment_text()
- Add get_instance() static method for returning/creating singleton instance
- Made static variable 'instance' private
- Validate post is either int or string before handling
- Add unit tests
- Omit output of empty 'title' attribute for links
- Update plugin framework to 037
- Use explicit path for require_once()
- For options_page_description(), match method signature of parent class
- Discontinue use of explicit pass-by-reference for objects
- Code tweaks (spacing, bracing, rearranging)
- Documentation enhancements, additions, and tweaks
- Note compatibility through WP 3.8+
- Drop compatibility with version of WP older than 3.6
- Update copyright date (2014)
- Regenerate .pot
- Change donate link
- Add assets directory to plugin repository checkout
- Add banner
- Add screenshot
1.0.1 (unreleased)
- Re-license as GPLv2 or later (from X11)
- Add 'License' and 'License URI' header tags to readme.txt and plugin file
- Add 'Upgrade Notice' section to readme.txt
- Remove ending PHP close tag
- Note compatibility through WP 3.4+
- Update copyright date (2012)
1.0