admin管理员组

文章数量:1277509

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.

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.

Share Improve this question asked Nov 2, 2012 at 14:42 lkraavlkraav 7399 silver badges21 bronze badges 3
  • Are you actually writing column code or plugin does that? – Rarst Commented Nov 2, 2012 at 14:59
  • No, I'm not writing column code. Problem is the same without any plugin, since Excerpt View is WordPress built-in feature. – lkraav Commented Nov 2, 2012 at 15:55
  • Well even if you are not writing custom code for columns, look at the filter for the_excerpt below. – Adam Commented Nov 2, 2012 at 15:56
Add a comment  | 

3 Answers 3

Reset to default 4

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.

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.

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');

本文标签: How to disable automatic excerpt generation *in admin*