我正在构建一些自定义wordpress插件,我想获得最近的帖子并从中获取我需要的一些数据并返回数组。我这样做但我的问题是,在我添加此代码后,全局变量$ post不再是对象,它现在是数组。因为在我的debug.log中我有很多警告“试图获取非对象的属性”在不同的类中试图得到对象的属性。例如($ post-ID)
$recentPosts = wp_get_recent_posts($blogPostArguments, OBJECT);
$posts = array();
foreach($recentPosts as $recentPost){
$avatar = get_avatar_url( $recentPost->post_author, 'default');
$featuredImage = get_the_post_thumbnail_url($recentPost->ID);
$url = get_post_permalink($recentPost->ID);
$categories = get_the_category($recentPost->ID);
foreach($categories as $category){
$category->url = get_category_link($category->term_id);
}
$authorFirstName = get_user_meta($recentPost->post_author, 'first_name', true);
$authorLastName = get_user_meta($recentPost->post_author, 'last_name', true);
$authorName = $authorFirstName . " " . $authorLastName;
$post = array();
$post['title'] = $recentPost->post_title;
$post['content'] = $this->limitText($recentPost->post_content, 5);
$post['featured_image'] = $featuredImage;
$post['full_name'] = $authorName;
$post['avatar'] = $avatar;
$post['url'] = $url;
$post['categories'] = $categories;
array_push($posts, $post);
}
答案 0 :(得分:2)
您是否尝试更改变量名称时重写$post = array();
?
比如$tempPost = array();
。
您应该如何为插件中的所有变量添加前缀,以避免任何现在或将来的数据冲突。 (通常是两个或三个字母的缩写)。
答案 1 :(得分:0)
我认为你需要在使用之前预先发布$ post。