Wordpress (вывод архива постов с миниатюрами)

m0le[x]
На сайте с 08.03.2009
Offline
102
2712

Может кто знает как решить подобную проблему?

Необходимо в футере вывести допустим 10 постов из архива за прошлый месяц с миниатюрами.

То есть картинка из поста, а под ней заголовок. Плагинов подобных не нашел. С кодом думаю разберусь, накидайте функций инфы или ссылок, куда копать.

Я так понимаю сначала нужно получить список постов от текущий месяц - 1, взять первые 10 сортировкой по дате, получить ID поста, сформировать миниатюру, получить заголовок и вывести все это.

Если кто поможет с кодом, буду очень благодарен, возможна и финансовая благодарность.

★ Combinat - реально мощная CPA партнерка! (https://combinat.pro/?utm_source=sesign)
AutoBlogger
На сайте с 05.10.2011
Offline
128
#1

1) Картинка непосредственно в теле поста находится? Типа <img src="блаблабла"> - так?

2) В каждом посте всегда ровно одна картинка?

3) Как именно должны создаваться миниатюры картинок - в виде новых файлов с ресайзом?

🪄 www.cyberseo.net - плагин для создания автоблогов под WordPress, с поддержкой OpenAI GPT, Anthropic Claude, Google Gemini, Llama, Mistral, Midjourney, FLUX, Stable Diffusion | 📣 Импорт RSS / XML / JSON/ CSV / HTML
m0le[x]
На сайте с 08.03.2009
Offline
102
#2

AutoBlogger

Миниатюры уже есть в каждом посте, выводить их можно функцией

<?php the_post_thumbnail(); ?>

Мне надо все это связать теперь с архивом как то

AutoBlogger
На сайте с 05.10.2011
Offline
128
#3

А, ну так уже понятнее. Завтра - будет время, напишу код.

S1
На сайте с 13.03.2008
Offline
49
#4

Набросал по быстрому - не проверял, но теоретически работать должно:)


<?php
$year = date('Y');
$month = date('m') - 1;
$the_query = new WP_Query(array('posts_per_page' => 10, 'post_type' => 'post', 'year' => $year, 'monthnum' => $month));

while($the_query->have_posts()) : $the_query->the_post(); ?>
<?php the_post_thumbnail(); ?>
<?php the_title(); ?>
<?php
endwhile;
wp_reset_postdata();
?>
Дизайн сайтов (UI/UX), логотипов, баннеров и прочего... (/ru/forum/770062)
m0le[x]
На сайте с 08.03.2009
Offline
102
#5

smart1k, спасибо, но данная конструкция не работает, попробую еще поковырять, посмотрю что конкретно не может получить в данном скрипте, может дойду сам.

Так же не откажусь от других вариантов.

AutoBlogger
На сайте с 05.10.2011
Offline
128
#6

Вот так нужно делать:

<?php

$year = date ( 'Y' );
$month = date ( 'm' ) - 1;
if (! $month) {
$month = 12;
$year --;
}
$query_string = 'orderby=date&posts_per_page=10&monthnum=' . $month . '&year=' . $year;
query_posts ( $query_string );
if (have_posts ()) {
while ( have_posts () ) {
the_post ();
$args = array ('post_type' => 'attachment', 'numberposts' => 1, 'post_status' => null, 'post_parent' => $post->ID );
$attachments = get_posts ( $args );
echo '<p style="text-align: center;">';
if ($attachments) {
echo '<a href="' . post_permalink () . '">';
echo wp_get_attachment_image ( $attachments [0]->ID, 'full' );
echo '</a><br />';
}
the_title ();
echo '</p>';
}
}
?>

P.S. Если не поленюсь, напишу еще и плагин с виджетомля сайдбара :)

m0le[x]
На сайте с 08.03.2009
Offline
102
#7

AutoBlogger, огромное спасибо, все выводится как надо! Благодарен Вам за такую помощь!

AutoBlogger
На сайте с 05.10.2011
Offline
128
#8

На здоровье! :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий