gpt4 book ai didi

php - 未捕获的 ArgumentCountError。分解意义

转载 作者:行者123 更新时间:2023-12-03 08:21:57 32 4
gpt4 key购买 nike

我希望能帮助理解这个 fatal error 。

看了其他帖子,我认为我理解的是,如果我错了,请纠正我。函数 get_excerpt() 当前正在传递 0 个东西(参数)并且它期望至少传递 1 个?我需要弄清楚如何告诉 get_excerpt() 找到至少 1 个要传递的参数?

fatal error :未捕获的 ArgumentCountError:函数 get_excerpt() 的参数太少,在第 74 行的/nas/content/live/all4edstg/wp-content/themes/all4ed/page-press-room.php 中传递了 0,预计至少有 1 个在/nas/content/live/all4edstg/wp-content/themes/all4ed/functions.php:2420

堆栈跟踪:#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} 抛出/nas/content/live/all4edstg/wp-content/themes/all4ed/functions.php 在第 2420 行

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>';

最佳答案

看看PHP's Default Function Arguments .

您会注意到该函数是这样定义的:

function get_excerpt( $post, $limit = 200, $more = '...' ){

这意味着 $post是必需的,因为它没有默认值,而是 $limit$more可以省略,因为它们确实具有默认值(分别为 200 个字符和人造椭圆)。

这意味着您有两个选择:

1) 重写函数以处理默认 $post值(value)

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);
}

关于php - 未捕获的 ArgumentCountError。分解意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54521827/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com