How to disable automatic excerpt generation *in admin*?

I’m adding a custom column named Excerpt with Codepress Admin Columns, and would like to know specifically when the Excerpt has not been filled out. Instead WordPress shows post content automatically, if the excerpt is missing. This is also testable by switching on the “Excerpt View” from post list screen.

Implementing default_excerpt hook doesn’t seem to do anything for admin side. Grepping through codebase isn’t getting me anywhere in a reasonable amount of time so I’m asking for some help figuring this out.

Related posts

Leave a Reply

3 comments

  1. Just illustrating this in full effect here with the filters and functions for both the adding of custom column and testing for excerpt existence.

    Note, I’ve purposely ripped the guts out of has_excerpt to show you in effect what is occurring under the hood. You can use !has_excerpt in its place.

    add_filter('the_excerpt', 'no_excerpt');
    add_filter('manage_posts_columns' , 'excerpt_column');
    add_action( 'manage_posts_custom_column' , 'excerpt_column_content', 10, 2 );
    
    function no_excerpt(){
        //replace empty( $post->post_excerpt ) with !has_excerpt if you wish
        if ( is_admin() && empty( $post->post_excerpt ) ) 
        return 'not here buddy!';
    }
    
    function excerpt_column($columns) {
        return array_merge( $columns, array('excerpt_column' => __('Excerpt')) );
    }
    
    function excerpt_column_content( $column, $post_id ) {
        the_excerpt();
    }
    

    This does not take into account any efficiencies that can be had by arranging and or calling your functions by different means, this is only an example. In my test case,

    "not here buddy!"
    

    …is what will be returned when no excerpt is present. Change to suit your needs.

    enter image description here

  2. There is has_excerpt() function that checks for manual excerpt.

    Depending on your needs you can either build column output using it for logic or hook into the_excerpt and blank return if current post doesn’t have manual excerpt.

  3. you can disable automatic excerpt generation from the_content via following filter hook. i personally needed it for rest api purposes and couldn’t use has_excerpt() in my template.

    remove_filter('get_the_excerpt', 'wp_trim_excerpt');