Wordpress全局$ post从对象更改为数组

时间:2016-11-28 14:22:58

标签: php wordpress

我正在构建一些自定义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);

}

2 个答案:

答案 0 :(得分:2)

您是否尝试更改变量名称时重写$post = array();? 比如$tempPost = array();

您应该如何为插件中的所有变量添加前缀,以避免任何现在或将来的数据冲突。 (通常是两个或三个字母的缩写)。

答案 1 :(得分:0)

我认为你需要在使用之前预先发布$ post。