在iframe中嵌入一个永无止境的Wordpress博客?

时间:2013-07-16 20:38:27

标签: asp.net-mvc wordpress iframe embed

我正在尝试将wordpress博客嵌入到我们网站的页面中。实际博客每页不显示10个帖子;当你向下滚动时,它会不断增长。永无止境。

我已经尝试将高度设置为大量,或将其设置为自动,但都无济于事。有什么想法吗?

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

1 个答案:

答案 0 :(得分:1)

有点迟到但有人可能觉得它很有用。

我为现有项目做了同样的事情。它由以下

组成
  1. Wordpress'XML-RPC API s
  2. XML-RPC.NET图书馆
  3. Ajax actionlink加载更多帖子
  4. 缓存
  5. 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,但我认为它可以提供更大的灵活性,因为您可以直接控制数据。

    希望这有帮助。