Для добавления пагинации к выводу фото через цикл foreach
в WordPress, необходимо выполнить несколько шагов.
1. Определите сколько фото вы хотите отображать на одной странице. Допустим, вы хотите отобразить 6 фото на странице.
2. Вам потребуется получить все фото, которые вы хотите отобразить. Можно использовать функцию get_posts
для этого. Например:
$args = array( 'post_type' => 'attachment', 'post_mime_type' =>'image', 'post_status' => 'inherit', 'posts_per_page' => -1, ); $photos = get_posts($args);
3. Обработайте массив $photos
и разделите его на страницы, каждая страница содержит заданное количество фото. Можно использовать функцию array_chunk
для этого. Например:
$photos_per_page = 6; $paginated_photos = array_chunk($photos, $photos_per_page);
4. Получите запрошенный номер страницы из параметров URL. Можно использовать get_query_var('paged')
или get_query_var('page')
. Например:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
5. Выведите фото для текущей страницы, используя foreach
. Например:
$current_photos = $paginated_photos[$paged - 1]; foreach ($current_photos as $photo) { $image_url = wp_get_attachment_image_url($photo->ID, 'full'); echo '<img src="' . $image_url . '" alt="Photo">'; }
6. Добавьте пагинацию перед циклом foreach
для навигации между страницами. Можно использовать функцию paginate_links
для этого. Например:
$pagination_args = array( 'base' => get_pagenum_link(1) . '%_%', 'format' => '/page/%#%', 'total' => count($paginated_photos), 'current' => $paged, 'prev_next' => true, 'prev_text' => __('« Previous'), 'next_text' => __('Next »'), ); echo paginate_links($pagination_args);
В итоге у вас будет вывод фото с пагинацией через цикл foreach
. Когда пользователь кликает на ссылку пагинации, вы можете использовать параметр paged
для загрузки соответствующих фото и вывода их на другой странице.