• Resolved adelval

    (@adelval)


    Regarding the issue with social buttons and content filters, would it be possible to add an argument to the shortcode to not run the content filters, just as with the widget?

    While I currently just display:none the offending added content (from the addthis sharing plugin), I have a couple of pages that I plan to secure with https, where I add some info via a content block for a modal window.

    Since the buttons are still there, only hidden, I predict trouble with the buttons not delivering the content securely, so I want to remove them altogether. I could do it with javascript, but would rather not too.

    The requested change is a one-liner, I’d very much appreciate it if you can do it.

    https://www.ads-software.com/plugins/custom-post-widget/

Viewing 7 replies - 1 through 7 (of 7 total)
  • Plugin Author Johan van der Wijk

    (@vanderwijk)

    Hi Adeval,

    If adding the option to disable the content filter for the shortcode solves your issue I would be happy to add this to my plugin.

    I’m quite busy at the moment, so if you could send me the required code changes I shall release the updated version. Otherwise it will go on my to-do list.

    Thread Starter adelval

    (@adelval)

    Hi Johan,

    Here it is (tested with your just released version 2.7.9):

    function custom_post_widget_shortcode( $atts ) {
    	extract( shortcode_atts( array(
    		'id' => '',
    		'slug' => '',
    		'class' => 'content_block',
    		'suppress_content_filters' => '0'
    	), $atts ) );
    
    	if ( $slug ) {
    		$block = get_page_by_path( $slug, OBJECT, 'content_block' );
    		if ( $block ) {
    			$id = $block->ID;
    		}
    	}
    
    	$content = "";
    
    	if( $id != "" ) {
    		$args = array(
    			'post__in' => array( $id ),
    			'post_type' => 'content_block',
    		);
    
    		$content_post = get_posts( $args );
    
    		foreach( $content_post as $post ) :
    			$content .= '<div class="'. esc_attr($class) .'" id="custom_post_widget-' . $id . '">';
    			if ('0' == $suppress_content_filters) {
    				$content .= apply_filters( 'the_content', $post->post_content);
    			} else { $content .= $post->post_content; }
    			$content .= '</div>';
    		endforeach;
    	}
    	return $content;
    }

    Default usage is unchanged (i.e. previous usages of the shortcodes apply the_content filters as usual). To suppress the filters, use e.g. [content_block id=6636 suppress_content_filters="1"].

    Thread Starter adelval

    (@adelval)

    Oh, and it was 3 lines added, not just a one-liner ??

    As said, I’d be thankful if you can include this (or similar) in the plugin. (The option name is a bit verbose, but I thought it was better to be explicit. Choose your name anyway)

    Plugin Author Johan van der Wijk

    (@vanderwijk)

    Hi Adeval,

    Since using a 0 for the shortcode attribute value might confuse some users, I have changed this to ‘yes’. So if you want to suppress the filter you add suppress_content_filters="yes" to the shortcode.

    Does this work for you?

    function custom_post_widget_shortcode( $atts ) {
    	extract( shortcode_atts( array(
    		'id' => '',
    		'slug' => '',
    		'class' => 'content_block',
    		'suppress_content_filters' => 'no'
    	), $atts ) );
    
    	if ( $slug ) {
    		$block = get_page_by_path( $slug, OBJECT, 'content_block' );
    		if ( $block ) {
    			$id = $block->ID;
    		}
    	}
    
    	$content = "";
    
    	if( $id != "" ) {
    		$args = array(
    			'post__in' => array( $id ),
    			'post_type' => 'content_block',
    		);
    
    		$content_post = get_posts( $args );
    
    		foreach( $content_post as $post ) :
    			$content .= '<div class="'. esc_attr($class) .'" id="custom_post_widget-' . $id . '">';
    			if ( $suppress_content_filters === 'no' ) {
    				$content .= apply_filters( 'the_content', $post->post_content);
    			} else {
    				$content .= $post->post_content;
    			}
    			$content .= '</div>';
    		endforeach;
    	}
    
    	return $content;
    }
    Thread Starter adelval

    (@adelval)

    yep, fine with me, thanks!

    álvaro

    Plugin Author Johan van der Wijk

    (@vanderwijk)

    Great, I have just released V2.8 which includes your code.

    Could you please after installing the update press the ‘works’ button at the bottom of this page? (see https://imgur.com/4D1Dikq for a screenshot of the button)

    Thread Starter adelval

    (@adelval)

    Done ??
    And thanks for your speed with incorporating suggestions!

Viewing 7 replies - 1 through 7 (of 7 total)
  • The topic ‘Add option to not apply content filters in shortcode’ is closed to new replies.