id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc,focuses 36934,Use of get_the_excerpt($post) is broken if post has no excerpt and you are inside a loop,magicroundabout,swissspidy,"In changeset [36319] (and [36321]), a `$post` parameter was added to `get_the_excerpt()` in `post-template.php`. I was really excited when I discovered this but: a) It's behaviour is inconsistent b) It doesn't quite do what I'd hoped c) It's broken in some circumstances There are a few things wrong: 1) The behaviour is inconsistent depending on usage. If you call `get_the_excerpt()` within the loop and if the post has no excerpt, then the post content will be stripped and truncated. If you call it with the `$post` parameter and the post has no excerpt then nothing is returned. Well...sometimes... 2) If you are inside a loop - say you're using `get_the_excerpt($post)` in a shortcode in a post - then you will actually get back the truncated content of the post from the loop that you are in. This is because `wp_trim_excerpt( $text )` does `get_the_content('')` if `$text` is empty. I think that the fix for this is to add an optional `$post` parameter to `wp_trim_excerpt()` and process it accordingly. We'll also need to update `default-filters.php` to pass the extra parameter on the `get_the_excerpt` filter hook. This change has the added benefit that `get_the_excerpt($post)` works consistently, fetching and trimming the post content if the post has no defined excerpt. Hooray!! (Been wanting this for YEARS!) I'm working on a patch. It would be good to write a test for this too but I have no idea how. Happy to take feedback.",defect (bug),closed,normal,,"Posts, Post Types",4.5,normal,duplicate,has-patch needs-testing has-unit-tests dev-feedback,,template