我的functions.php中有这段代码
function custom_excerpt_length() {
return 15;
}
add_filter('excerpt_length', 'custom_excerpt_length');
但它不起作用,因为它给了我全文,而不是我指定的 15 个单词。由于这个原因,我在网站上设置的网格不正确。
提前致谢
也可以使用此代码来获取多种类型的摘录
function excerpt($limit) {
$excerpt = explode(' ', get_the_excerpt(), $limit);
if (count($excerpt)>=$limit) {
array_pop($excerpt);
$excerpt = implode(" ",$excerpt).'...';
} else {
$excerpt = implode(" ",$excerpt);
}
$excerpt = preg_replace('`\[[^\]]*\]`','',$excerpt);
return $excerpt;
}
function content($limit) {
$content = explode(' ', get_the_content(), $limit);
if (count($content)>=$limit) {
array_pop($content);
$content = implode(" ",$content).'...';
} else {
$content = implode(" ",$content);
}
$content = preg_replace('/\[.+\]/','', $content);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
return $content;
}
然后在您的模板代码中您只需使用..
<?php echo excerpt(25); ?>
添加第三个参数并且你还没有提到函数参数它将起作用
function custom_excerpt_length( $length ) {
return 15;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
如果您在古腾堡编辑器中使用“摘录”块,并且尝试为其设置默认长度(或除最初允许的 10-100 个单词值之外的任何内容),您可能会发现
excerpt_length
过滤器对块没有影响,您甚至不能使用 the_excerpt
过滤器来覆盖摘录的内容。这是因为 WordPress 摘录块中的最新更新。
但是,您可以使用以下代码来编辑摘录古腾堡块的默认块设置:
function filter_metadata_registration( $metadata ) {
if ($metadata['name'] === 'core/post-excerpt') {
$metadata['attributes']['excerptLength'] = [
'type' => 'number',
'default' => 9999,
];
}
return $metadata;
};
add_filter( 'block_type_metadata', 'filter_metadata_registration' );