Skip to content

Instantly share code, notes, and snippets.

@Nikschavan
Created February 27, 2018 06:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Nikschavan/744baf3369a3c1aac84864066fcbdcfb to your computer and use it in GitHub Desktop.
Save Nikschavan/744baf3369a3c1aac84864066fcbdcfb to your computer and use it in GitHub Desktop.
Allow iframe in the WordPress post excerpt.
<?php // don't copy this line in your code.
function your_prefix_custom_excerpt($text) {
$raw_excerpt = $text;
if ( '' == $text ) {
//Retrieve the post content.
$text = get_the_content('');
//Delete all shortcode tags from the content.
$text = strip_shortcodes( $text );
$text = apply_filters('the_content', $text);
$text = str_replace(']]>', ']]&gt;', $text);
$allowed_tags = '<div>,<iframe>'; // Add comma separated tags that should be displayed in the excerpt.
$text = strip_tags($text, $allowed_tags);
$excerpt_word_count = 55; // Ccustom excerpt work count.
$excerpt_length = apply_filters('excerpt_length', $excerpt_word_count);
$excerpt_end = '[...]'; // Modify this if you want to change the excerpt_more tag.
$excerpt_more = apply_filters('excerpt_more', ' ' . $excerpt_end);
$words = preg_split("/[\n\r\t ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY);
if ( count($words) > $excerpt_length ) {
array_pop($words);
$text = implode(' ', $words);
$text = $text . $excerpt_more;
} else {
$text = implode(' ', $words);
}
}
return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'your_prefix_custom_excerpt');
@Nikschavan
Copy link
Author

Nikschavan commented Feb 27, 2018

Change line #16 with HTML tags which should appear in the excerpt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment