我希望对这个致命错误有一些帮助。
从其他帖子看,这是我的理解,如果我错了,请纠正我。函数get_excerpt()当前传递0个事物(参数),并且期望传递至少1个?我需要弄清楚如何告诉get_excerpt()找到至少1个要传递的参数?
致命错误:未被捕获的ArgumentCountError:函数get_excerpt()的参数太少,在第74行及以下的/nas/content/live/all4edstg/wp-content/themes/all4ed/page-press-room.php中传递了0在/nas/content/live/all4edstg/wp-content/themes/all4ed/functions.php:2420
中至少应有1个堆栈跟踪:#0 /nas/content/live/all4edstg/wp-content/themes/all4ed/page-press-room.php(74):get_excerpt()#1 / nas / content / live / all4edstg / wp-includes / template-loader.php(75):include('/ nas / content / li ...')#2 /nas/content/live/all4edstg/wp-blog-header.php(16):require_once ('/ nas / content / li ...')#3 /nas/content/live/all4edstg/index.php(17):require('/ nas / content / li ...')#4 {main}在第2020行的/nas/content/live/all4edstg/wp-content/themes/all4ed/functions.php中抛出
Function.php行:2420
function get_excerpt ( $post, $limit = 200, $more = '...' ) {
$post = get_post($post);
if ( ! strlen($post->post_excerpt)) {
return false;
}
if ($limit == -1) return $post->post_excerpt;
// Use the excerpt
$excerpt = $post->post_excerpt;
$excerpt = apply_filters('the_excerpt', $excerpt);
// Strip tags
$excerpt = strip_tags($excerpt);
return trim_text($excerpt, $limit, $more);
}
page-press-room.php行:74
$leftcol .= '<p>'.get_excerpt().'</p>';
答案 0 :(得分:1)
看看PHP's Default Function Arguments。
您会注意到该函数的定义如下:
function get_excerpt( $post, $limit = 200, $more = '...' ){
这意味着$post
是必需的,因为它没有默认值,但是$limit
和$more
可以省略,因为它们 do 具有默认值(分别为200个字符和人造椭圆)。
这意味着您有两个选择:
1)重写该函数以处理默认的$post
值
2)将帖子传递到函数调用$leftcol .= '<p>'.get_excerpt( 1234 ).'</p>';
最简单的方法是#2,然后将全局发布ID传递给函数,具体取决于您代码的其余部分,它们看起来像以下任何一种代码:
$leftcol .= '<p>'.get_excerpt( get_the_ID() ).'</p>';
$leftcol .= '<p>'.get_excerpt( $post->ID ).'</p>';
$leftcol .= '<p>'.get_excerpt( $post_id ).'</p>';
如果这些主题是不会更新的主题,则可以像许多WordPress get
函数一样更新该函数本身以处理全局默认值。查看get_post_custom()
的文档源代码。默认将$post
设置为0,因此,如果未设置覆盖值(如上面的选项2),它将默认通过get_the_ID()
设置为全局帖子ID。看起来像这样:
function get_excerpt( $post = null, $limit = 200, $more = '...' ){
if( $post == null ) $post = get_the_ID();
$post = get_post( $post );
if( ! strlen($post->post_excerpt) ){
return false;
}
if( $limit == -1 )
return $post->post_excerpt;
// Use the excerpt
$excerpt = $post->post_excerpt;
$excerpt = apply_filters('the_excerpt', $excerpt);
// Strip tags
$excerpt = strip_tags($excerpt);
return trim_text($excerpt, $limit, $more);
}