我需要显示不同长度的摘录,所以我使用
function custom_excerpt($length) {
get_the_content();
... clean up and trim
return $excerpt;
}
但是,我想检测是否输入了手动摘录以便使用该摘录而不是自定义摘录。有没有办法做到这一点?
我尝试使用
$wp_excerpt = get_the_excerpt();
但是返回手册摘录,如果手册摘录为空,它会自动生成55个字符的摘录,这没有用,因为它总是“真”(无法检查是否为空)。
以这种方式接近它的原因是因为我在一个页面上有多个摘录(不同长度),如果所需的长度比WordPress摘录(55)长,我想显示我的摘录,除非编写了手册摘录,在这种情况下我想表明这一点。
如果我可以简单地
那将是完美的if ( manual_excerpt() == true ) {
}
答案 0 :(得分:3)
您只需要替换excerp_length wordpress默认功能,只需按照上面的代码,然后就可以调用这个自定义函数并设置长度:
<?php
// custom excerpt length
function custom_excerpt_length( $length = 20 ) {
return $length;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
?>
在函数内部使用:
<?php
function custom_excerpt( $length = 55 ) {
if( $post->post_excerpt ) {
$content = get_the_excerpt();
} else {
$content = get_the_content();
$content = wp_trim_words( $content , $length );
}
return $excerpt;
}
?>
答案 1 :(得分:0)
检查post对象中的post_excerpt
插槽是否为空:
global $post;
if( '' == $post->post_excerpt )
{
// this post does NOT have a manual excerpt
}
将其转换为函数:
function so19935351_has_manual_excerpt( $post )
{
if( '' == $post->post_excerpt )
return false;
return true;
}
答案 2 :(得分:0)
这是一个古老的问题,但是我一直在寻找这个问题,结果到这里了,在答案中没有看到以下功能。要了解帖子是否包含自定义摘录,可以使用has_excerpt函数:
<?php has_excerpt( $id ); ?>
其中$id
是帖子ID。如果未指定,则将使用当前的帖子ID。