PHP 错误 - 警告:count():参数必须是数组或实现 Countable 的对象
PHP Error - Warning: count(): Parameter must be an array or an object that implements Countable
完整的错误是:
“警告:count():参数必须是在第 54 行 /app/public/wp-content/themes/site/inc/lists_posts.php 中实现 Countable 的数组或对象”
第 54 行是第一个 if 语句开始的地方。知道我该如何解决这个问题吗?
<?php foreach($projects as $key => $project){
$display = true;
$terms = get_the_terms($project->ID,"diadem_project_category");
if(count($terms) == 1){
// function located in function.php
$display = check_project_display($terms[0]->term_id);
}
if($display){
$permalink = get_permalink($project->ID);
$project_caption = get_field('project_caption',$project->ID);
$type = get_field('type',$project->ID);
$subscript_number = get_field('subscript_number',$project->ID);
$download_pdf = get_field('download_pdf',$project->ID);
$thumbnail = get_the_post_thumbnail_url($project->ID);
$image_url = wp_get_attachment_image_src( get_post_thumbnail_id($project->ID), 'medium');
$categories = wp_get_post_terms($project->ID, $category_name, array("fields" => "all"));
$target ="";
$slug = "";
if($categories){
foreach($categories as $cat){
$slug .= $cat->slug." ";
if($category_name == "diadem_insight_category"){
$project_caption = $cat->name;
}
}
}
$project->post_title = str_replace("'","’",$project->post_title);
?>
有时在获取数据时,会出现一些错误return false
而不是结果集。所以在检查数据长度之前,我们也应该比较输出类型。
if($terms !== false && count($terms) == 1){
// function located in function.php
$display = check_project_display($terms[0]->term_id);
}
而且我认为您可能会得到 n
个条款,而不仅仅是一个。那样的话
if($terms !== false && count($terms) >= 1){
// function located in function.php
$display = check_project_display($terms[0]->term_id);
}
首先使用var_dump($terms)
或echo gettype($terms)
检查变量$terms
的数据类型。它必须是一个数组或对象然后只有警告不会occurs.The count()
您使用的方法期望参数数据类型应为 array
或 object
.
完整的错误是: “警告:count():参数必须是在第 54 行 /app/public/wp-content/themes/site/inc/lists_posts.php 中实现 Countable 的数组或对象”
第 54 行是第一个 if 语句开始的地方。知道我该如何解决这个问题吗?
<?php foreach($projects as $key => $project){
$display = true;
$terms = get_the_terms($project->ID,"diadem_project_category");
if(count($terms) == 1){
// function located in function.php
$display = check_project_display($terms[0]->term_id);
}
if($display){
$permalink = get_permalink($project->ID);
$project_caption = get_field('project_caption',$project->ID);
$type = get_field('type',$project->ID);
$subscript_number = get_field('subscript_number',$project->ID);
$download_pdf = get_field('download_pdf',$project->ID);
$thumbnail = get_the_post_thumbnail_url($project->ID);
$image_url = wp_get_attachment_image_src( get_post_thumbnail_id($project->ID), 'medium');
$categories = wp_get_post_terms($project->ID, $category_name, array("fields" => "all"));
$target ="";
$slug = "";
if($categories){
foreach($categories as $cat){
$slug .= $cat->slug." ";
if($category_name == "diadem_insight_category"){
$project_caption = $cat->name;
}
}
}
$project->post_title = str_replace("'","’",$project->post_title);
?>
有时在获取数据时,会出现一些错误return false
而不是结果集。所以在检查数据长度之前,我们也应该比较输出类型。
if($terms !== false && count($terms) == 1){
// function located in function.php
$display = check_project_display($terms[0]->term_id);
}
而且我认为您可能会得到 n
个条款,而不仅仅是一个。那样的话
if($terms !== false && count($terms) >= 1){
// function located in function.php
$display = check_project_display($terms[0]->term_id);
}
首先使用var_dump($terms)
或echo gettype($terms)
检查变量$terms
的数据类型。它必须是一个数组或对象然后只有警告不会occurs.The count()
您使用的方法期望参数数据类型应为 array
或 object
.