Plugin / Linkify Text

Scott Reilly

Description

Description

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

Hooks

The plugin exposes a number of filters for hooking. Typically, code making use of filters should ideally be put into a mu-plugin or site-specific plugin (which is beyond the scope of this readme to explain). Bear in mind that most of the features controlled by these filters are configurable via the plugin’s settings page. These filters are likely only of interest to advanced users able to code.

c2c_linkify_text_filters (filter)

The ‘c2c_linkify_text_filters’ hook allows you to customize what hooks get text linkification applied to them.

Arguments:

  • $hooks (array): Array of hooks that will be text linkified.

Example:

/**
 * Enables text linkification for custom fields.
 *
 * @param array $filters The filters handled by the Linkify Text plugin.
 */
function more_text_replacements( $filters ) {
    $filters[] = 'the_meta'; // Here you could put in the name of any filter you want
    return $filters;
}
add_filter( 'c2c_linkify_text_filters', 'more_text_replacements' );

c2c_linkify_text_comments (filter)

The ‘c2c_linkify_text_comments’ hook allows you to customize or override the setting indicating if text linkification should be enabled in comments.

Arguments:

  • $state (bool): Either true or false indicating if text linkification is enabled for comments. The default value will be the value set via the plugin’s settings page.

Example:

// Prevent text linkification from ever being enabled in comments.
add_filter( 'c2c_linkify_text_comments', '__return_false' );

c2c_linkify_text (filter)

The ‘c2c_linkify_text’ hook allows you to customize or override the setting defining all of the text phrases and their associated links.

Arguments:

  • $linkify_text_array (array): Array of text and their associated links. The default value will be the value set via the plugin’s settings page.

Example:

/**
 * Programmatically adds more text to be linked.
 *
 * @param array $text_to_links Array of text and their associated URLs.
 */
function my_text_linkifications( $text_to_links ) {
    // Add text link
    $text_to_links['Matt Mullenweg'] => 'https://ma.tt';

    // Unset a text link that we never want defined
    if ( isset( $text_to_links['WordPress'] ) ) {
        unset( $text_to_links['WordPress'] );
    }

    // Important! Return the changes.
    return $text_to_links;
}
add_filter( 'c2c_linkify_text', 'my_text_linkifications' );

c2c_linkify_text_case_sensitive (filter)

The ‘c2c_linkify_text_case_sensitive’ hook allows you to customize or override the setting indicating if text matching for potential text linkification should be case sensitive or not.

Arguments:

  • $state (bool): Either true or false indicating if text matching is case sensitive. The default value will be the value set via the plugin’s settings page.

Example:

// Prevent text matching from ever being case sensitive.
add_filter( 'c2c_linkify_text_case_sensitive', '__return_false' );

c2c_linkify_text_replace_once (filter)

The ‘c2c_linkify_text_replace_once’ hook allows you to customize or override the setting indicating if text linkification should be limited to once per term per piece of text being processed regardless of how many times the term appears.

Arguments:

  • $state (bool): Either true or false indicating if text linkification is to only occur once per term. The default value will be the value set via the plugin’s settings page.

Example:

// Only linkify a term once per post.
add_filter( 'c2c_linkify_text_replace_once', '__return_true' );

c2c_linkify_text_open_new_window (filter)

The ‘c2c_linkify_text_open_new_window’ hook allows you to customize or override the setting indicating if links should open in a new window.

Arguments:

  • $state (bool): Either true or false indicating if links should open in a new window. The default value will be the value set via the plugin’s settings page, which itself is defaulted to false.

Example:

// Make links open in a new window.
add_filter( 'c2c_linkify_text_open_new_window', '__return_true' );

c2c_linkify_text_linked_text (filter)

The ‘c2c_linkify_text_linked_text’ hook allows you to customize or override the replacement link markup for a given string. Return the value of $old_text to effectively prevent the given text linkification.

Arguments:

  • $new_text (string): The link markup that will replace $old_text.
  • $old_text (string): The text being replaced/linkified.
  • $link (string): The URL that $old_text is to be linked to.
  • $text_to_link (array): The full array of text and the URLs they should link to.

Example:

/**
 * Disable linkification of links for posts that have the 'disable_linkify_text'
 * custom field defined.
 *
 * @param array  $display_link  The associative array of attributes to be used for the link.
 * @param string $old_text      The text being replaced/linkified.
 * @param string $link_for_text The URL that $old_text is to be linked to.
 * @param string $text_to_link  The full array of text and the URLs they should link to.
 * @return string
 */
function selectively_disable_text_linkification( $display_link, $old_text, $link_for_text, $text_to_link ) {
    if ( get_metadata( 'post', get_the_ID(), 'disable_linkify_text', true ) ) {
        $display_link = $old_text;
    }
    return $display_link;
}
add_filter( 'c2c_linkify_text_linked_text', 'selectively_disable_text_linkification', 10, 4 );

c2c_linkify_text_link_attrs (filter)

The ‘c2c_linkify_text_link_attrs’ hook allows you to add or customize attributes for the link.

Arguments:

  • $attrs (array): The associative array of attributes to be used for the link. By default includes ‘href’.
  • $old_text (string): The text being replaced/linkified.
  • $link (string): The URL that $old_text is to be linked to.

Example:

/**
 * Force links created by Linkify Text plugin to open in a new tab.
 *
 * @param array $attrs     The associative array of attributes to be used for the link.
 * @param string $old_text The text being replaced/linkified.
 * @param string $link     The URL that $old_text is to be linked to.
 * @return array
 */
function my_linkify_text_attrs( $attrs, $old_text, $link ) {
    $attrs['target'] = '_blank';
    return $attrs;
}
add_filter( 'c2c_linkify_text_link_attrs', 'my_linkify_text_attrs', 10, 3 );

DIRECTORY DISCLAIMER

The information provided in this THEME/PLUGIN DIRECTORY is made available for information purposes only, and intended to serve as a resource to enable visitors to select a relevant theme or plugin. wpSocket gives no warranty of any kind, express or implied with regard to the information, including without limitation any warranty that the particular theme or plugin that you select is qualified on your situation.

The information in the individual theme or plugin displayed in the Directory is provided by the owners and contributors themselves. wpSocket gives no warranty as to the accuracy of the information and will not be liable to you for any loss or damage suffered by you as a consequence of your reliance on the information.

Links to respective sites are offered to assist in accessing additional information. The links may be outdated or broken. Connect to outside sites at your own risk. The Theme/Plugin Directory does not endorse the content or accuracy of any listing or external website.

While information is made available, no guarantee is given that the details provided are correct, complete or up-to-date.

wpSocket is not related to the theme or plugin, and also not responsible and expressly disclaims all liability for, damages of any kind, arising out of the use, reference to, or reliance on, any information or business listed throughout our site.

Keep Leading Your Followers!
Share it for them.