【问题标题】:Embedding a never-ending Wordpress blog in an iframe?在 iframe 中嵌入永无止境的 Wordpress 博客?
【发布时间】:2013-07-15 05:19:43
【问题描述】:

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

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

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

【问题讨论】:

    标签: asp.net-mvc wordpress iframe embed


    【解决方案1】:

    答案有点晚,但有人可能会觉得它有用。

    我对现有项目做了同样的事情。它由以下内容组成

    1. Wordpress'XML-RPC APIs
    2. XML-RPC.NET图书馆
    3. Ajaxactionlink 加载更多帖子
    4. 缓存

    Wordpress 的 XML-RPC API

    看看 Wordpress 的XML-RPC APIs,这些允许您直接与您的 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 操作链接

    和你一样,我想动态加载帖子,所以我最终使用 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,但我认为它提供了更多的灵活性,因为您可以直接控制自己的数据。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-02
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多