How to Remove Shortcode from Home but Not Single Posts in WordPress

Home » Snippets » How to Remove Shortcode from Home but Not Single Posts in WordPress
0

Created with:

Visibility: 

public

Creator: WPTurbo Team

Customize with WPTurbo AI
X

Add Snippet To Project

New Project
Add To Existing Project

Have you ever wanted to keep a shortcode functionality on your individual posts but not on your WordPress homepage? Perhaps, it’s because the shortcode content looks great on individual posts but somehow clutters your homepage. WordPress allows you to do that, but the process can seem a bit complex especially for beginners. In this article, we’ll simplify that process and guide you step by step on how to effectively remove shortcodes from your homepage, while keeping them active on single posts.

					function wpturbo_remove_shortcode_from_home($content) {
   if ( is_home() ) {
      $content = strip_shortcodes($content);
   }
   return $content;
}
add_filter('the_content', 'wpturbo_remove_shortcode_from_home');
				

The code snippet begins by defining a new function named wpturbo_remove_shortcode_from_home that accepts $content as an argument. $content here represents the content of your WordPress page or post.

function wpturbo_remove_shortcode_from_home($content) {

Then, we specify that the subsequent operations we want to perform are only for the homepage, using the WordPress conditional tag is_home(). This function returns true if the homepage is currently being viewed and false in all other cases. If is_home() returns true, the code block inside the if statement is executed.

   if ( is_home() ) {

If the current page is the homepage, we’re using the strip_shortcodes() function, which is a built-in function in WordPress that will remove all shortcodes from the $content. The strip_shortcodes function works by scanning the provided content for any shortcodes and stripping them out.

      $content = strip_shortcodes($content);
   }

After this, the modified content is returned. If the current page was not the homepage, the content won’t be modified and the content input to the function will be the same as the output.

   return $content;
}

Lastly, we attach our custom wpturbo_remove_shortcode_from_home function to ‘the_content’ filter using add_filter. This hook allows you to modify the content of your post after it has been retrieved from the database but before it is printed to the screen.

add_filter('the_content', 'wpturbo_remove_shortcode_from_home');

In essence, this entire code snippet tells WordPress to remove all shortcodes when rendering the specific content of a homepage, but leave the shortcodes in place for individual (single) posts.

Register an account to save your snippets or go Pro to get more features.