【发布时间】:2016-09-07 13:16:32
【问题描述】:
在我的 wordpress 网站上,我有许多基于不同人的动态页面。我执行 Ajax 调用来获取数据,生成所有包含在 javascript 函数中的数据的 html,然后将其全部插入到实际页面上的 div 中。有了这个,我想展示关于页面加载的特定人员的最新三篇文章。我发现结果告诉我将其添加到functions.php:
//This file is needed to be able to use the wp_rss() function.
include_once(ABSPATH.WPINC.'/rss.php');
function readRss($atts) {
extract(shortcode_atts(array(
"feed" => 'http://',
"num" => '1',
), $atts));
return wp_rss($feed, $num);
}
add_shortcode('rss', 'readRss');
然后我试着把它放在我的 html 中:
var rsser = '<h2>In the News</h2>' +
'[rss feed="http://website.com/tag/' + tagname + '/feed/" num="3"]';
$('#rssCon').html(rsser);
但是,这似乎不起作用,我担心这可能是因为它是异步发生的。在这种情况下,“标记名”将是我从 Ajax 调用中获得的一条数据。
所以我正在寻找一种异步动态生成 rss 提要的方法。如果可能的话,如果有人能指出我的好方向,那就太好了,或者,如果不是,请告诉我!
添加更多代码:
var getNewsPerson = function() {
$.ajax({
url:"http://website/api/v1/api?pid=" + personId,
type:"get",
success:function(res) {
return_tagname(res);
processPerson(res);
}
});
};
function processPerson(data) {
var returnedFeedShortcode = return_tagname(data);
var head =
'<div class="headForPerson-nt">' +
'<div class="hfpm-NextPerson-nt">' +
'<div class="hfpm-header-nt">' + data[0][0].FirstName + '</div>' +
'<div class="hfpm-ng-one-nt">' + data[0][0].LastName + '</div>' +
'</div>' +
'<div class="hfpm-News-nt">' +
'<div class="hfpm-header-nt">In the News</div>' + returnedFeedShortcode +
'</div>' +
'</div>';
$('#personPageHead-nt').html(head);
}
$(document).ready(function() {
if($('#personPageHead-nt').length) {
getNewsPerson(location.search);
}
});
function return_tagname(data) {
var tagname = data[0][0].FirstName + '+' + data[0][0].LastName;
return do_shortcode('[rss feed="http://website/tag/' + tagname + '/feed/" num="3"]');
};
【问题讨论】: