Add Snippet To 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.