您不需要使用自定义代码来更改摘录长度。有一个默认的WordPress过滤器:excerpt_length
. 你只需要使用它。
要在主题的每个地方更改为相同的摘录长度,如果您在站点的每个地方都使用相同的摘录长度,只需在主题的functions.php
文件:
function my_custom_excerpt_length( $length ) {
// set the number you want
return 20;
}
add_filter( \'excerpt_length\', \'my_custom_excerpt_length\', 999 );
然后在模板文件中(例如
single.php
), 只需拨打:
echo get_the_excerpt( $post_id );
在主题上使用不同的摘录长度如果您想在不同的地方使用不同的摘录长度,那么创建一个自定义函数以便轻松调用是有意义的。即使这样,您也可以使用WordPress提供的函数和过滤器。在这种情况下,请在中使用以下功能
functions.php
文件:
function set_custom_excerpt_length( $length ) {
global $custom_excerpt_length;
if( ! isset( $custom_excerpt_length ) ) {
return $length;
}
return $custom_excerpt_length;
}
function my_excerpt( $post_id = null, $length = 55 ) {
global $custom_excerpt_length, $post;
$custom_excerpt_length = $length;
if( is_null( $post_id ) ) {
$post_id = $post->ID;
}
add_filter( \'excerpt_length\', \'set_custom_excerpt_length\', 999 );
echo get_the_excerpt( $post_id );
remove_filter( \'excerpt_length\', \'set_custom_excerpt_length\', 999 );
}
然后在模板文件中这样使用它:
my_excerpt( $previous->ID, 30 );
当然,您可以使用其他答案使用的自定义函数,但是,在这种情况下,您将错过WordPress的默认行为。
Note: 如果您正在使用the loop 当然,你不应该打电话wp_reset_postdata()
在每次摘录函数调用时。