Я встраиваю функцию недавних постов в сайт WordPress, у меня есть возможность вызывать два разных избранных изображения, но они оба ссылаются на один и тот же пост, может кто-нибудь увидеть, где я ошибаюсь?
<?php
$args = array(
'posts_per_page' => 2,
'order_by' => 'date',
'order' => 'desc'
);
$post = get_posts( $args );
if($post) {
$post_id = $post[0]->ID;
if(has_post_thumbnail($post_id)){
?>
<div class="grid_24">
<div class="grid_12">
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<?php
echo get_the_post_thumbnail($page->ID, 'medium');
?>
</a>
</div>
<div class="grid_12">
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<?php
echo get_the_post_thumbnail( $post_id,'medium');
?>
</a>
</div>
</div>
<?php
}
}
?>
ты можешь использовать echo get_the_permalink($post->ID)
чтобы получить URI для сообщений
Похоже, в вашем случае вам понадобится
echo get_the_permalink($post[0]->ID);
а также
echo get_the_permalink($post[1]->ID);
в кратчайшие сроки
Однако вам, вероятно, лучше создать цикл foreach для просмотра сообщений из функции get_posts.
https://developer.wordpress.org/reference/functions/get_the_permalink/
https://developer.wordpress.org/reference/functions/get_posts/
Итак, во-первых, вы не зацикливаете сделанный запрос (например, $ posts = get_posts ($ args);), вы просто отображаете эскиз первого сообщения и эскиз текущей страницы.
Вы должны зациклить пост, как это:
<?php
$args = array(
'posts_per_page' => 2,
'order_by' => 'date',
'order' => 'desc'
);
$posts = get_posts( $args );
?>
<?php if ( !empty( $posts ) ) :?>
<div class="grid_24">
<?php foreach ( $posts as $post ) : ?>\
<?php if( has_post_thumbnail( $post->ID ) ) ?>
<div class="grid_12">
<a href="<?php echo esc_url( get_permalink( $post->ID ) ) ?>">
<?php echo get_the_post_thumbnail( $post->ID, 'size_here'); ?>
</a>
</div>
<?php endif; ?>
<?php endforeach?>
</div>
<?php endif;