0

私は現在、ワードプレス サイトからフィードを取得し、jquery モバイル リスト形式で個々の投稿を一覧表示するアプリに取り組んでいます。以下はJSコードです。

$(document).ready(function () {
    var url = 'http://howtodeployit.com/category/daily-devotion/feed/';
    $.ajax({
        type: "GET",
        url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&output=json_xml&num=1000&callback=?&q=' + encodeURIComponent(url),
        dataType: 'json',
        error: function () {
            alert('Unable to load feed, Incorrect path or invalid feed');
        },
        success: function (data) {
            var postlist = data.responseData.feed.entries;
            var html = '<ul data-role="listview" data-filter="true">';
            for (var i = 0; i < 6; i++) {
                var entry = postlist[i];
                console.log(entry);
                html += '<li>';
                html += '<a href="#articlepost" onclick="showPost(' + entry.id + ')">';
                html += '<div class="etitle">' + entry.title + '</div>';
                html += '<div class="esnippet">' + entry.contentSnippet + '</div>';
                html += '</a>';
                html += '</li>';
            }
            html += '</ul>';
            $("#devotionlist").append(html);
            $("#devotionlist ul[data-role=listview]").listview();
        }
    });
});

function showPost(id) {
    $('#articlecontent').html("Loading post...");
    $.getJSON('http://howtodeployit.com/category/daily-devotion/?json=get_post&post_id=' + id + '&callback=?', function (data) {
        var html = '';
        html += '<h3>' + data.post.title + '</h3>';
        html += data.post.content;
        $('#articlecontent').html(html);
    });
}

表示された 6 つの投稿のいずれかをクリックすると、個々の投稿のコンテンツではなく、最初の投稿のコンテンツのみが表示されます。

4

1 に答える 1

0

これをどのように回避しましたか?

ステップ 1: WordPress パーマリンク設定からカスタム構造を選択し、/%postname%/%post_id%を追加しました。これは、'Link' 要素の RSS XML 出力結果が次の形式になることを意味します。

<myurl>/<postname>/<postID> (http://howtodeployit.com/xxx/111/)

ステップ 2: 正規表現クエリを記述する代わりに、簡単にするために、次のような Split コマンドを使用しました。

var postlink = entry.link;
var id = postlink.split(/\//)[4];

(///)[4]は単に URL をスラッシュの数で分割し、私の postID がある 4 番目のビットだけを取ります。

これが私の立場の他の人に役立つことを願っています

于 2013-10-10T14:37:30.577 に答える