我正在尝试将 wordpress 博客嵌入到我们网站的页面中。但是,实际的博客不会每页显示 10 个帖子;当您向下滚动时,它会不断增长,也就是。没完没了。
我尝试将高度设置为大量,或将其设置为自动,但都无济于事。有任何想法吗?
<iframe src="http://myblog.wordpress.com/" width="100%" height="50000" scrolling="no"></iframe>
我正在尝试将 wordpress 博客嵌入到我们网站的页面中。但是,实际的博客不会每页显示 10 个帖子;当您向下滚动时,它会不断增长,也就是。没完没了。
我尝试将高度设置为大量,或将其设置为自动,但都无济于事。有任何想法吗?
<iframe src="http://myblog.wordpress.com/" width="100%" height="50000" scrolling="no"></iframe>
答案有点晚,但有人可能会觉得它很有用。
我对现有项目做了同样的事情。它由以下内容组成
XML-RPC API
的XML-RPC.NET
图书馆Ajax
加载更多帖子的操作链接Wordpress 的 XML-RPC API
看看 WordpressXML-RPC API
的,这些允许您直接与您的 Wordpress 安装进行通信。您可以使用一整套方法,例如获取所有帖子、添加帖子等,通过修改一些PHP
文件来添加您自己的方法非常容易。
你可以在这里找到文档
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
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 个帖子非常快,包括图片,但您应该考虑进行某种形式的缓存。我最终只使用了标准输出缓存属性。
虽然我的解决方案不使用 iframe,但我认为它提供了更多的灵活性,因为您可以直接控制您的数据。
希望这可以帮助。