Skip to:
Content
Pages
Categories
Search
Top
Bottom

Shortcodes – Disable WordPress automatic formatting

  • @m1000

    Participant

    Hello,

    When I insert any shortcode into forum post then wordpress always insert paragraphs and line break

    I pasted following code into functions.php

    function my_formatter($content) {
    	$new_content = '';
    	$pattern_full = '{(\[raw\].*?\[/raw\])}is';
    	$pattern_contents = '{\[raw\](.*?)\[/raw\]}is';
    	$pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);
    
    	foreach ($pieces as $piece) {
    		if (preg_match($pattern_contents, $piece, $matches)) {
    			$new_content .= $matches[1];
    		} else {
    			$new_content .= wptexturize(wpautop($piece));
    		}
    	}
    
    	return $new_content;
    }
    	
    remove_filter('the_content', 'wpautop');
    remove_filter('the_content', 'wptexturize');
    
    add_filter('the_content', 'my_formatter', 99);
    

    … but it works on pages and posts only. How to make it working on buddypress?

Viewing 2 replies - 1 through 2 (of 2 total)
  • @chouf1

    Participant

    Hi @m1000,

    all forum filters are listed in bp-forums/bp-forums-filters.php
    ie :

    <code>remove_filter( ‘bp_get_the_topic_post_content’, ‘wptexturize’ );
    remove_filter( ‘bp_get_the_topic_post_content’, ‘wpautop’ );
    remove_filter( ‘bp_get_the_topic_latest_post_excerpt’, ‘wpautop’ );</code>

    and many others ! 😉

    @m1000

    Participant

    Thanks! It works. The whole code will be:

    `function my_formatter($content) {
    $new_content = ”;
    $pattern_full = ‘{(\[raw\].*?\[/raw\])}is’;
    $pattern_contents = ‘{\[raw\](.*?)\[/raw\]}is’;
    $pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);

    foreach ($pieces as $piece) {
    if (preg_match($pattern_contents, $piece, $matches)) {
    $new_content .= $matches[1];
    } else {
    $new_content .= wptexturize(wpautop($piece));
    }
    }

    return $new_content;
    }

    remove_filter(‘the_content’, ‘wpautop’);
    remove_filter(‘the_content’, ‘wptexturize’);

    remove_filter( ‘bp_get_the_topic_post_content’, ‘wptexturize’ );
    remove_filter( ‘bp_get_the_topic_post_content’, ‘wpautop’ );

    add_filter(‘the_content’, ‘my_formatter’, 99);
    add_filter(‘bp_get_the_topic_post_content’, ‘my_formatter’, 99);`

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Shortcodes – Disable WordPress automatic formatting’ is closed to new replies.
Skip to toolbar