درود
به کمک توابعی که معرفی شد ابتدا فانکشن را مینویسیم:
function add_custom_fields_to_rest_api() {
// Add author name field
register_rest_field(
'post',
'author_name',
array(
'get_callback' => function ($post_arr) {
$author_id = $post_arr['author'];
if ($author_id > 0) {
$author_name = get_the_author_meta('display_name', $author_id);
return $author_name;
}
return null;
},
'update_callback' => null,
'schema' => null,
)
);
// Add publication date field
register_rest_field(
'post',
'publication_date',
array(
'get_callback' => function ($post_arr) {
$publication_date = get_the_date('Y-m-d', $post_arr['id']);
return $publication_date;
},
'update_callback' => null,
'schema' => null,
)
);
}
add_action('rest_api_init', 'add_custom_fields_to_rest_api');
سپس طبق آموزش نیاز است به صورت دستی برخی مقادیر را در index.php اضافه کنیم از جمله:
<p><?php echo ($post['author_name']) ?></p>
<p>تاریخ انتشار: <?php echo $post['publication_date']; ?></p>
و در نهایت خواهیم داشت:
?>
<?php
$all_post = 'http://localhost/wordpress/wp-json/wp/v2/posts?_feilds=id,tilte,link,title,excerpt';
$all_post = file_get_contents($all_post);
$all_post = json_decode($all_post, true);
?>
<div class="container">
<div class="row">
<?php if($all_post): ?>
<?php foreach ($all_post as $post): ?>
<div class="card">
<?php echo get_the_post_thumbnail($post['id'], 'thumbnail', array('class' => 'img-fluid')); ?>
<h3 class="title"><a href="<?php echo $post['link'] ?>"><?php echo $post['title']['rendered'] ?></a></h3>
<p><?php echo lt_excerpt_limit($post['excerpt']['rendered']) ?></p>
<p><?php echo ($post['author_name']) ?></p>
<p>تاریخ انتشار: <?php echo $post['publication_date']; ?></p>
</div>
<?php endforeach; ?>
<?php else: ?>
<div class="alert alert-danger">تاکنون مطلبی منتشر نشده است.</div>
<?php endif; ?>
</div>
</div>