要在WordPress站外调用某个分类下的6个随机文章,你可以使用WordPress REST API。以下是一个示例代码,展示了如何使用JavaScript和jQuery来实现这个功能:
1. 首先,确保你的WordPress站点已经启用了REST API。在`functions.php`文件中添加以下代码:
add_action('rest_api_init', function () {
register_rest_route('your-plugin/v1', '/random-posts/(?P<category_id>\d+)/(?P<count>\d+)', array(
'methods' => 'GET',
'callback' => 'get_random_posts',
));
});
function get_random_posts($request) {
$category_id = $request['category_id'];
$count = $request['count'];
$args = array(
'category' => $category_id,
'orderby' => 'rand',
'posts_per_page' => $count,
);
$query = new WP_Query($args);
$posts = $query->get_posts();
$data = array();
foreach ($posts as $post) {
$data[] = array(
'title' => $post->post_title,
'link' => get_permalink($post->ID),
);
}
return rest_ensure_response($data);
}
这段代码会创建一个新的REST API路由,允许你通过`/wp-json/your-plugin/v1/random-posts//`来获取随机文章。
2. 在你的前端页面中,使用以下JavaScript代码来调用API并显示结果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Random Posts</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<div id="random-posts"></div>
<script>
$(document).ready(function() {
var categoryId = 1; // 替换为你想要的分类ID
var count = 6;
$.ajax({
url: 'https://wodepress.com/wp-json/your-plugin/v1/random-posts/' + categoryId + '/' + count,
type: 'GET',
success: function(data) {
var randomPostsHtml = '<ul>';
$.each(data, function(index, post) {
randomPostsHtml += '<li><a href="' + post.link + '">' + post.title + '</a></li>';
});
randomPostsHtml += '</ul>';
$('#random-posts').html(randomPostsHtml);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log('Error: ' + textStatus + ' - ' + errorThrown);
}
});
});
</script>
</body>
</html>
请确保将`categoryId`变量替换为你想要的分类ID,并将`wodepress.com`替换为你的WordPress站点URL。这段代码会在页面加载完成后,通过AJAX调用你创建的REST API路由,并将结果显示在页面上。
请注意,这段代码需要在支持JavaScript和jQuery的环境中运行,并且你的WordPress站点需要允许跨域请求,如果前端页面不在同一个域名下。