我有一个显示作者最新帖子的页面。但当作者没有帖子时,我会收到一条显示消息
警告:rsort()要求参数1为数组,在。。。
这里是脚本
function wpmu_latest_post_auther($authorId,$how_many = 10, $how_many_words = 50, $more_text = "[...]", $remove_html = true, $sort_by = \'post_date\') {
global $wpdb;
//first, gat all blog id
$query = "SELECT blog_id FROM $wpdb->blogs WHERE blog_id !=\'1\'";
$blogs = $wpdb->get_col($query);
if ($blogs) {
//we use blog id to loop post query
foreach ($blogs as $blog) {
$blogPostsTable = \'wp_\'.$blog.\'_posts\';
$db_query = "SELECT $blogPostsTable.ID,
$blogPostsTable.post_author,
$blogPostsTable.post_title,
$blogPostsTable.guid,
$blogPostsTable.post_date,
$blogPostsTable.post_content,
$blogPostsTable.post_modified,
$blogPostsTable.comment_count
FROM $blogPostsTable WHERE $blogPostsTable.post_status = \'publish\'
AND $blogPostsTable.post_author = $authorId
AND $blogPostsTable.post_type = \'post\'";
$thispos = $wpdb->get_results($db_query);
foreach($thispos as $thispost) {
if($sort_by == \'post_date\') {
$order = $thispost->post_date;
}
else{
$order = $thispost->post_modified;
}
$post_dates[] = $order;
$post_guids[$order] = $thispost->guid;
$blog_IDs[$order] = $blog;
$post_IDs[$order] = $thispost->ID;
$post_titles[$order] = $thispost->post_title;
$post_authors[$order] = $thispost->post_author;
$post_contents[$order] = $thispost->post_content;
$comments[$order] = $thispost->comment_count;
}
}
rsort($post_dates);
$union_results = array_unique($post_dates);
$ResultArray = array_slice($union_results, 0, $how_many);
foreach ($ResultArray as $date) {
$ID = $post_IDs[$date];
$blogID = $blog_IDs[$date];
$id_author = $post_authors[$date];
$post_url = get_blog_permalink($blog_IDs[$date], $ID);/*$post_guids[$date];*/
$post_title = $post_titles[$date];
$post_content = $post_contents[$date];
$post_date = mysql2date(get_option(\'date_format\'), $date);
$post_time = mysql2date(get_option(\'time_format\'), $date);
$total_comment = $comments[$date];
$user_info = get_userdata($id_author);
$author_blog_url = get_blogaddress_by_id($user_info->primary_blog);
$author_url = $user_info->user_url;
$author_email = $user_info->user_email;
if($user_info->first_name) {
$author_name = $user_info->first_name.\' \'.$user_info->last_name;
}
else{
$author_name = $user_info->nickname;
}
if($remove_html) {
$post_content = wpmu_cleanup_post($post_content);
}
$results = array();
$results[\'ID\'] = $ID;
$results[\'blogID\'] = $blogID;
$results[\'post_url\'] = $post_url;
$results[\'post_title\'] = $post_title;
$results[\'post_content\'] = wpmu_cut_article_by_words($post_content, $how_many_words);
if ($results[\'post_content\'] != $post_content)
$results[\'post_content\'] .= sprintf(\' <a href="%s">%s</a>\', $post_url, $more_text);
$results[\'author_blog_url\'] = $author_blog_url;
$results[\'author_url\'] = $author_url;
$results[\'author_email\'] = $author_email;
$results[\'author_name\'] = $author_name;
$results[\'post_date\'] = $post_date;
$results[\'post_time\'] = $post_time;
$results[\'comment_count\'] = $total_comment;
$returns[] = $results;
}
$latest_posts = wpmu_bind_array_to_object($returns);
return $latest_posts;
} }
是有人有一个想法,如何不显示警告时,作者没有张贴添加。
当做
最合适的回答,由SO网友:GhostToast 整理而成
尝试包装rsort
if语句中的位如下所示:
if (!empty($post_dates)) {
rsort($post_dates);
} else { echo \'optional error message here\'; }
这将首先检查变量是否为空,并且只运行
rsort()
如果它不是空的。此检查在大多数情况下都有效,但如果变量实际上不是数组,但包含其他数据,则有时可能出现误报!(例如错误消息)。或者,您可能会发现这在某些情况下更有效:
if ($post_dates != \'\') {
rsort($post_dates);
}
仅当变量不等于时,此操作才会继续
null
, 这和空的东西不完全一样。还有其他方法可以检查变量是否是您想要的,例如
if (is_array($post_dates)) { do stuff }
.