💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ بهمن فلاحی
تمرین: نمایش آبجکت تایپ‌های «نام نویسنده» و «تاریخ انتشار»
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۰۳ دی ۱۴۰۲

درود
به کمک توابعی که معرفی شد ابتدا فانکشن را می‌نویسیم:

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>

موفق باشید.

محسن موحد ۰۳ دی ۱۴۰۲، ۱۲:۲۸