我正在尝试在静态html页面上加载WordPress之外的帖子。到目前为止,我有一个使用React,http://v2.wp-api.org/和https://github.com/mzabriskie/axios的工作示例。这个使用react的工作示例目前正确显示帖子,但它很脆弱,没有后退。 Codepen示例,https://codepen.io/krogsgard/pen/NRBqPp/
我使用此示例来使用axios axios.get(this.props.source)
获取Feed源。然后我使用示例react函数来获取我最近的三个帖子,包括标题和图像,并通过
render: function render() {
return React.createElement(
"div",
{ className: "post-wrapper" },
this.state.posts.map(function (post) {
return React.createElement(
"div",
{ key: post.link, className: "post" },
React.createElement(
"h2",
{ className: "post-title" },
React.createElement("a", {
href: post.link,
dangerouslySetInnerHTML: { __html: post.title.rendered }
})
),
post.featured_media ? React.createElement(
"a",
{ href: post.link },
React.createElement("img", { src: post._embedded['wp:featuredmedia'][0].source_url })
) : null
);
})
);
}
我的博客来源wp json是
React.render(React.createElement(App, { source:
"myBlogURL.com/wp-json/wp/v2/posts/?_embed&per_page=3" }),
document.querySelector("#blog-post"));
将我最新的3篇博文正确加载到<div id="blog-posts">
我正在寻找一种香草js的方式与一些后备助手一起做这件事。如果我忘记将精选图片包含在帖子中,帖子将无法加载。非常感谢任何想法或例子!
答案 0 :(得分:1)
你正努力为此努力。 Wordpress CMS专为此类设计而设计。您可以按类别,标签和其他taxonomies以RSS Feed的形式显示帖子。很容易
•如果您对代码不太满意,可以找到许多widgets来处理大部分工作。
•如果您需要自己动手,下面的内容应该是JSON / jQuery。
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js'></script>
<script type="text/javascript">
var MYBLOG_LIMIT = 3;
var MYWRAPPER_CLASS = 'homeblog';
var WP={open:function(b){var a={posts:function(){var d=MYBLOG_LIMIT;var e=0;var c={all:function(g){var f=b+"/api/get_recent_posts/";f+="?count="+d+"&page="+e+"&callback=?";jQuery.getJSON(f,function(l){var k=l.posts;for(var j=0;j<k.length;j++){var h=k[j];h.createComment=function(i,m){i.postId=h.id;a.comments().create(i,m)}}g(k)})},findBySlug:function(f,h){var g=b+"/api/get_post/";g+="?slug="+f+"&callback=?";jQuery.getJSON(g,function(i){h(i.post)})},limit:function(f){d=f;return c},page:function(f){e=f;return c}};return c},pages:function(){var c={findBySlug:function(d,f){var e=b+"/api/get_page/";e+="?slug="+d+"&callback=?";jQuery.getJSON(e,function(g){f(g.page)})}};return c},categories:function(){var c={all:function(e){var d=b+"/api/get_category_index/";d+="?callback=?";jQuery.getJSON(d,function(f){e(f.categories)})}};return c},tags:function(){var c={all:function(e){var d=b+"/api/get_tag_index/";d+="?callback=?";jQuery.getJSON(d,function(f){e(f.tags)})}};return c},comments:function(){var c={create:function(f,e){var d=b+"/api/submit_comment/";d+="?post_id="+f.postId+"&name="+f.name+"&email="+f.email+"&content="+f.content+"&callback=?";jQuery.getJSON(d,function(g){e(g)})}};return c}};return a}};
var blog = WP.open('https://www.fldtrace.com');
blog.posts().all(function(posts){
for(var i = 0; i < posts.length; i++){
jQuery('.'+MYWRAPPER_CLASS).append(function(){
return (posts[i].thumbnail) ? '<a class="lastpost_title" href="'+posts[i].url+'">
<h4>'+posts[i].title+'</h4>
</a><a href="'+posts[i].url+'"><img src="'+posts[i].thumbnail+'"/></a>' : '<a href="'+posts[i].url+'">
<h4>'+posts[i].title+'</h4>
</a>';
});
}
});
</script>
<div class="homeblog">
</div>
您需要配置下一个选项
var MYBLOG_LIMIT = 1;将定义将显示的帖子数量。默认情况下 是1. var MYWRAPPER_CLASS ='homeblog'; - HTML的类名 将显示帖子的元素。 var blog = WP.open(“https://www.fldtrace.com/”); - 这应链接到您的博客 默认情况下,主域(必填)将显示帖子缩略图 和标题都有联系。其余的是CSS自定义,包括 调整缩略图大小。
在源文章中阅读更多here。