2013-07-16 39 views
0

我试图在我们的网站上嵌入一个wordpress博客到页面。实际的博客虽然每页不显示10篇文章,当你向下滚动时,它会不断增长。没完没了。在iframe中嵌入一个永无止境的WordPress博客?

我试着将高度设置为巨量,或将其设置为自动,但都无济于事。有任何想法吗?

<iframe src="http://myblog.wordpress.com/" width="100%" height="50000" scrolling="no"></iframe> 

回答

1

有点迟到的答案,但有人可能会觉得它有用。

我对现有项目做了同样的事情。它包括以下

  1. WordPress的XML-RPC API小号
  2. XML-RPC.NET图书馆
  3. Ajax ActionLink的加载更多帖子
  4. 缓存

WordPress的XML-RPC的API

有看看WordPress的'XML-RPC API s,这些让你直接与你的Wordpress安装沟通。您可以使用一整套方法,例如获取所有帖子,添加帖子等,并且通过修改一些PHP文件很容易添加您自己的方法。

您可以找到的文档here

XML-RPC.NET图书馆

会碰上XML-RPC已经来了,如果你已经在过去所做的PHP,但其一般并不常见.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

阿贾克斯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,但我认为它提供了更多的灵活性,因为您可以直接控制数据。

希望这会有所帮助。