1

私は最近、simplepieを使用してワードプレスのブログにリンクしたいポートフォリオWebサイトの開発を開始しました。これまでのところ、非常にスムーズなプロセスでした。投稿の名前と説明を読み込んで、投稿全体にリンクするのは非常に簡単でした。ただし、自分のWebサイトにも投稿を表示するオプションが必要です。特定の投稿の完全なコンテンツを取得するのは簡単ですが、私がやりたいのは、投稿を識別するために何らかのGET変数をとるポートフォリオWebサイトのphpページにリンクする最近の投稿のリストを提供することです。そこでコンテンツ全体をレンダリングできます。

ここで問題が発生しました。特定のIDや名前などに従って投稿を検索する方法はないようです。あるページの投稿オブジェクトから一意の識別子を取得し、その識別子を別のページに渡してそこで特定の投稿を検索する方法はありますか?それが不可能な場合は、投稿オブジェクト全体を渡すか、他のページで使用できるように一時的にどこかに保存する方法はありますか?

お時間をいただきありがとうございます。

4

1 に答える 1

1

私はsimplepieについて何か他のものを探しているあなたの質問に出くわしました。しかし、simplepieを使用している間は識別子を使用します。だからこれはあなたの質問への答えのようです:

PHPのgetFeedPosts関数は次のようになります。

public function getFeedPosts($numberPosts = null) {
    $feed = new SimplePie();    // default options
    $feed->set_feed_url('http://yourname.blogspot.com');    // Set the feed
    $feed->enable_cache(true);  /* Enable caching */
    $feed->set_cache_duration(1800);    /* seconds to cache the feed */         
    $feed->init();  // Run SimplePie.
    $feed->handle_content_type();
    $allFeeds = array();
    $number = $numberPosts>0 ? $numberPosts : 0;
    foreach ($feed->get_items(0, $number) as $item) {
        $singleFeed = array(
            'author'=>$item->get_author(),
            'categories'=>$item->get_categories(),
            'copyright'=>$item->get_copyright(),
            'content'=>$item->get_content(),
            'date'=>$item->get_date("d.m.Y H:i"),
            'description'=>$item->get_description(),
            'id'=>$item->get_id(),
            'latitude'=>$item->get_latitude(),
            'longitude'=>$item->get_longitude(),
            'permalink'=>$item->get_permalink(),
            'title'=>$item->get_title()
        );
        array_push($allFeeds, $singleFeed);
    }
    $feed = null;
    return json_encode($allFeeds);
}

ご覧のとおり、連想配列を作成してJSONとして返すため、クライアント側でjQueryとajax(私の場合)を使用すると非常に簡単になります。

'id'は、私のブログのすべての投稿の一意の識別子です。したがって、これは、別の機能/別のページでも同じ投稿を識別するための鍵です。投稿を繰り返して、このIDを比較するだけです。私が見る限り、get_item($ ID)関数はありません。get_item($ key)関数がありますが、配列位置によってすべての投稿のリストから特定の投稿を取得しているだけです(これは私が提案するのとほぼ同じ方法です)。

于 2012-06-20T12:57:25.670 に答える