Using WordPress ‘format_for_editor’ PHP filter

The format_for_editor WordPress PHP filter allows you to modify the text after it has been formatted for the editor.

Usage

add_filter('format_for_editor', 'my_custom_function', 10, 2);
function my_custom_function($text, $default_editor) {
    // your custom code here
    return $text;
}

Parameters

  • $text (string) – The formatted text.
  • $default_editor (string) – The default editor for the current user, usually either ‘html’ or ‘tinymce’.

More information

See WordPress Developer Resources: format_for_editor

Examples

Add a watermark to the text in the editor

This example adds a watermark to the text in the editor.

add_filter('format_for_editor', 'add_watermark_to_text', 10, 2);
function add_watermark_to_text($text, $default_editor) {
    $watermark = 'Sample Watermark';
    $text .= $watermark;
    return $text;
}

Wrap text in a custom div

This example wraps the text in a custom div with a specific class.

add_filter('format_for_editor', 'wrap_text_in_custom_div', 10, 2);
function wrap_text_in_custom_div($text, $default_editor) {
    $text = '<div class="my-custom-class">' . $text . '</div>';
    return $text;
}

Replace specific words in the text

This example replaces specific words in the text with alternative words.

add_filter('format_for_editor', 'replace_specific_words', 10, 2);
function replace_specific_words($text, $default_editor) {
    $search = array('old-word1', 'old-word2');
    $replace = array('new-word1', 'new-word2');
    $text = str_replace($search, $replace, $text);
    return $text;
}

Add custom HTML before and after the text

This example adds custom HTML before and after the text.

add_filter('format_for_editor', 'add_custom_html', 10, 2);
function add_custom_html($text, $default_editor) {
    $before_html = '<h2>Custom Title</h2>';
    $after_html = '<p>Custom Footer Text</p>';
    $text = $before_html . $text . $after_html;
    return $text;
}

Remove empty paragraphs from the text

This example removes empty paragraphs from the text.

add_filter('format_for_editor', 'remove_empty_paragraphs', 10, 2);
function remove_empty_paragraphs($text, $default_editor) {
    $text = preg_replace('/<p[^>]*>[\s|&nbsp;]*<\/p>/', '', $text);
    return $text;
}