修改帖子摘录的合适挂钩是您已经尝试过的挂钩:get_the_excerpt
和the_excerpt
, WordPress实际上使用前一种方法从完整的帖子内容中生成摘录,如果没有自定义或手动指定的帖子摘录,下面是wp-includes/default-filters.php
:
add_filter( \'get_the_excerpt\', \'wp_trim_excerpt\', 10, 2 );
因此,如果要访问自动生成的摘录,请使用
the_excerpt
胡克,你可以这样做:
add_filter( \'the_excerpt\', function ( $excerpt ) {
return has_excerpt() ?
\'Has custom excerpt: \' . $excerpt :
\'Automatic excerpt: \' . $excerpt;
} );
但请注意,自动摘录可能不一定是最初由WordPress生成的,WordPress甚至可能不是生成摘录的那一个-插件可以完全覆盖它或只是定制它,就像您可以做的一样。
您可能已经猜到了,您可以删除默认的WordPress过滤器,然后使用您自己的回调生成您自己的;“自动”;摘录:
remove_filter( \'get_the_excerpt\', \'wp_trim_excerpt\', 10, 2 );
add_filter( \'get_the_excerpt\', function ( $excerpt, $post ) {
return $post->post_excerpt ?
\'Has custom excerpt: \' . $excerpt :
\'Here, create your own excerpt.\';
}, 10, 2 );