Skip to content

Instantly share code, notes, and snippets.

@mlbd
Last active February 10, 2016 16:34
Show Gist options
  • Save mlbd/db5f5485a7bc15626325 to your computer and use it in GitHub Desktop.
Save mlbd/db5f5485a7bc15626325 to your computer and use it in GitHub Desktop.
class Excerpt {
// Default length (by WordPress)
public static $length = 55;
// So you can call: my_excerpt('short');
public static $types = array(
'short' => 25,
'regular' => 55,
'long' => 100
);
/**
* Sets the length for the excerpt,
* then it adds the WP filter
* And automatically calls the_excerpt();
*
* @param string $new_length
* @return void
* @author Baylor Rae'
*/
public static function length($new_length = 55) {
Excerpt::$length = $new_length;
add_filter('excerpt_length', 'Excerpt::new_length');
add_filter('excerpt_more', 'Excerpt::new_excerpt_more');
Excerpt::output();
}
// Tells WP the new length
public static function new_length() {
if( isset(Excerpt::$types[Excerpt::$length]) )
return Excerpt::$types[Excerpt::$length];
else
return Excerpt::$length;
}
public static function new_excerpt_more( $more ) {
return '...';
}
// Echoes out the excerpt
public static function output() {
the_excerpt();
}
}
// An alias to the class
function my_excerpt($length = 55) {
Excerpt::length($length);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment