简短回答:不要这样做!即使昨天你说明天!
在其他文件中包含WordPress的核心是您最不想做的事情。相反,使用Ajax方法并使用REST端点填充内容。
您需要先注册rest路由。为此,请将这段代码添加到主题的functions.php
:
add_action( \'rest_api_init\', function () {
register_rest_route( \'vinay\', \'/ajax_blog/\', array(
\'methods\' => \'GET\',
\'callback\' => \'blog_ajax_function\'
) );
});
// Now, you can do your query inside a callback function:
function blog_ajax_function(){
$recent_posts = wp_get_recent_posts( $args, OBJECT );
foreach ( $recent_posts as $post=>$value ) {
$data[$post][\'title\'] = get_the_title( $value->ID );
$data[$post][\'date\'] = get_the_date( \'Y-m-d H:i:s\', $value->ID );
$data[$post][\'permalink\'] = get_the_permalink( $value->ID );
$data[$post][\'thumbnail\'] = get_the_post_thumbnail_url( $value->ID );
}
return $data;
}
现在,您可以通过访问获得包含标题、日期和最近帖子缩略图的JSON响应
wp-json/vinay/ajax_blog/
. 是时候把它们添加到我们的页面了。
让我们将一个操作绑定到页面加载,并用奇特的泡沫帖子填充页面,就像海绵宝宝所做的那样!这将放在静态网站的HTML文件中(通过删除并使用此文件替换问题中的代码),不要忘记更改example.com
到您的域!
<section id="blog"><div id="container-div"></div></section>
<script>
(function(){
$.ajax({
type: \'GET\',
url: \'http://example.com/wp-json/vinay/ajax_blog\',
dataType: \'json\',
success: function (data) {
if (data != null) {
$.each(data, function(index, element) {
$(\'#container-div\').append(\'<a href="\'+element.permalink+\'"><img src="\'+element.thumbnail+\'" alt="\'+element.title+\'"/><span>\'+element.title+\'</span>\' +element.date+ \'</a>\');
});
}
}
});
})(jQuery);
</script>
这将自动将可单击的最近帖子列表附加到
<div id="container-div"></div>
我们在HTMl中创建以在页面加载时包含帖子。
全部完成。