2016-11-28 2 views
2

私はいくつかのカスタムワードプレスプラグインを構築しています。最近の投稿を取得し、それから必要なデータを取得して配列を返したいと思います。私はこれをしましたが、私の問題は、このコードを追加した後、グローバル変数$ postはもはやオブジェクトではなく、配列になりました。それは私のdebug.logには、オブジェクトのプロパティが取得しようとしている別のクラスの "非オブジェクトのプロパティを取得しようとする"という警告がたくさんあるからです。たとえば、($ポスト-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

おそらくグローバル$ポストを上書きします。 '$ my_post = array();' –

答えて

2

あなたは$post = array();を書き換えますが、変数名を変更しようとしたのですか? は、$tempPost = array();のようになります。

現在または将来のデータの衝突を避けるために、プラグイン内のすべての変数のプレフィックスをどのように設定する必要がありますか。 (通常2〜3文字の頭字語)。

+1

はい、私は間違って書き直しました。メソッドの先頭にグローバル$ post変数を追加しているのを見ていませんでした。 – tuna

0

$ postを使用する前にforeachする必要があると思います。

関連する問題