我正在尝试将wordpress博客嵌入到我们网站的页面中。实际博客每页不显示10个帖子;当你向下滚动时,它会不断增长。永无止境。
我已经尝试将高度设置为大量,或将其设置为自动,但都无济于事。有什么想法吗?
<iframe src="http://myblog.wordpress.com/" width="100%" height="50000" scrolling="no"></iframe>
答案 0 :(得分:1)
有点迟到但有人可能觉得它很有用。
我为现有项目做了同样的事情。它由以下
组成XML-RPC API
s XML-RPC.NET
图书馆Ajax
actionlink加载更多帖子Wordpress'XML-RPC API
看看Wordpress'XML-RPC API
,这些允许您直接与Wordpress安装进行通信。您可以使用一系列方法,例如获取所有帖子,添加帖子等,并且通过修改某些PHP
文件很容易添加自己的方法。
您可以找到文档here
XML-RPC.NET库
如果你以前做过php,你可能会遇到XML-RPC
,但.NET
开发人员通常不常见。因此,为了让生活更轻松,我最终使用了Charles Cook的XML-RPC.NET
库。这个方便的库可以创建远程调用,甚至可以反序列化响应。
继承我的代码以获取帖子
public interface IWordPress : IXmlRpcProxy
{
[XmlRpcMethod("wp.getPosts")]
Post[] GetPosts(int blog_id, string username, string password, PostFilter filter);
}
public class PostFilter
{
//Ignore the first...
public string offset { get; set; }
//Bring back this many posts
public int number { get; set;
}
public struct Post
{
public string post_id { get; set; }
public string post_title { get; set; }
public string post_status { get; set; }
public DateTime post_date { get; set; }
public string post_content { get; set; }
public string post_author { get; set; }
}
确保属性名称与Wordpress API文档中列出的属性名称相匹配,否则它们将不会映射。
您可以找到XML-RPC.NET here
加载更多帖子的Ajax actionlink
和我一样,我想动态加载帖子,所以我最终使用Ajax Actionlink创建了对我的控制器的异步请求,而控制器又称为Wordpress API。
这是我的代码
@Ajax.ActionLink("Load more posts!", "action", "controller",
new { offset = Model.Offset },
new AjaxOptions
{
InsertionMode = InsertionMode.InsertAfter,
UpdateTargetId = "post-items",
OnSuccess = "loadItemsSucccess",
OnBegin = "loadItemsBegin"
}, null)
正如您所看到的,我正在传递我们传递给wp.getposts方法的偏移值。它告诉wordpress api忽略前x个量。您只需在帖子进来时不断更改此值。
<强>缓存强>
一般来说,一次加载9个帖子非常快,包括图片,但你应该考虑做某种形式的缓存。我最后只使用标准output cache attribute。
虽然我的解决方案不使用iframe,但我认为它可以提供更大的灵活性,因为您可以直接控制数据。
希望这有帮助。