Intereting Posts
Плагин событий, который работает с существующими категориями? Какой бы я использую, если я хочу обновить поле профиля пользователя при создании нового пользователя? Преобразование страницы WP для использования полных явных путей? Петля на статической странице Эхо-строка в нижнем колонтитуле панели администратора рядом с версией нет Включение ссылки на пользовательский тип сообщения в функции «wp_list_pages» Могу ли я каким-либо образом отображать логотип сайта, а также заголовок и подпись? Листинг Подстраницы и суб-страницы Пароль пользователя обновляет пароль, даже если он не заполнен (тема моего входа в систему) в Firefox? Как я могу использовать массив в настраиваемом типе сообщений? PHP 7 – проблема совместимости метода класса Просмотр собственных сообщений при входе в систему Преобразование паролей пользователей в MD5? Удалите скрипт из файла шаблона, используя wp_dequeue_script Добавление электронной почты повторного типа и проверка ее, если соответствие по электронной почте

Пользовательская разбивка на страницы

Я использую шаблонную часть для отображения элементов портфеля. Это не шаблон страницы только файл portfolio.php, и я get_template_part('portfolio'); его с get_template_part('portfolio'); на домашнюю страницу.

Теперь все работает хорошо. Но я хочу использовать разбивку на страницы для этого раздела. Вот мой кодовый блок;

 <?php global $wp_query; $paged = get_query_var('paged') ? get_query_var('paged') : 1; $port_args = array( 'post_type' => 'portfolio', 'posts_per_page' => 3, 'post_status' => 'publish', 'paged' => $paged ); $wp_port_query = new WP_Query($port_args); if( have_posts() ) : while ( $wp_port_query->have_posts() ) : $wp_port_query->the_post(); ?> <li class="col-lg-4 col-sm-4 view item <?php $terms = get_the_terms( get_the_ID(), 'portfolio_filter' ); ?><?php if($terms) : foreach ($terms as $term) { echo $term->slug.' '; } endif; ?>"> <?php the_post_thumbnail("portfolio-image"); ?> </li> <?php endwhile; endif; echo '<nav>'; echo '<div>'.get_next_posts_link('Older', $wp_port_query->max_num_pages).'</div>'; //Older Link using max_num_pages echo '<div>'.get_previous_posts_link('Newer', $wp_port_query->max_num_pages).'</div>'; //Newer Link using max_num_pages echo "</nav>"; wp_reset_query(); ?> 

Когда я нажимаю кнопку «Старая страница», она будет « ?paged=2 , но она не работает, она снова показывает те же записи. Если я использую шаблон страницы и открываю имя themename/page_id=82 он работает. И URL-адрес выглядит следующим образом ?page_id=82&paged=2 Теперь я думаю, что мне не хватает идентификатора страницы в разделе. Как я могу исправить это и работать с ним в разделе шаблона главной страницы. Если он не работает, как я могу добавить page_id в get_next_posts_link. Теперь это выглядит так ?paged=2 и я хочу изменить его следующим образом ?page_id=82&paged=2 . Идентификатор страницы автоматически выходит со страницы. Как я могу это сделать?

Solutions Collecting From Web of "Пользовательская разбивка на страницы"

Я просто немного изменил ваш код для добавления разбивки на страницы …. Вот вы …

Это будет ваша специальная петля типа сообщения ….

 <?php if ( get_query_var('page') ) { $paged = get_query_var('page'); } else if ( get_query_var('paged') ) { $paged = get_query_var('paged'); } ?> <?php $LoopPortfolio = new WP_Query(array( 'post_type' => 'portfolio', 'paged'=>$paged, 'posts_per_page' => '3' )); ?> <?php if($LoopPortfolio->have_posts()) : while($LoopPortfolio->have_posts()) : $LoopPortfolio->the_post(); ?> <li class="col-lg-4 col-sm-4 view item <?php $terms = get_the_terms( get_the_ID(), 'portfolio_filter' ); ?><?php if($terms) : foreach ($terms as $term) { echo $term->slug.' '; } endif; ?>"> <?php the_post_thumbnail("portfolio-image"); ?> </li> <?php endwhile; pagination($LoopPortfolio->max_num_pages); endif; wp_reset_query(); ?> 

Добавьте эту функцию в файл function.php ….

 /// pagination function pagination($pages = '', $range = 2) { $showitems = ($range * 2)+1; if ( get_query_var('page') ) { $paged = get_query_var('page'); } else if ( get_query_var('paged') ) { $paged = get_query_var('paged'); } else { $paged = 1; } if(empty($paged)) $paged = 1; if($pages == '') { global $wp_query; $pages = $wp_query->max_num_pages; if(!$pages) { $pages = 1; } } if(1 != $pages) { echo "<div class=\"pagination\"><span>Page ".$paged." of ".$pages."</span>"; if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>&laquo; First</a>"; if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo; Previous</a>"; for ($i=1; $i <= $pages; $i++) { if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )) { echo ($paged == $i)? "<span class=\"current\">".$i."</span>":"<a href='".get_pagenum_link($i)."' class=\"inactive\">".$i."</a>"; } } if ($paged < $pages && $showitems < $pages) echo "<a href=\"".get_pagenum_link($paged + 1)."\">Next &rsaquo;</a>"; if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>Last &raquo;</a>"; echo "</div>\n"; } } 

Добавьте этот CSS в свой файл css …..

 /*******************/ .pagination { clear:both; padding:20px 0; position:relative; font-size:11px; line-height:13px; } .pagination span, .pagination a { display:block; float:left; margin: 4px 4px 4px 0; padding:9px 12px 8px 12px; text-decoration:none; width:auto; color:#fff; background: #555; } .pagination a:hover{ color:#fff; background: #3279BB; } .pagination .current{ background: #3279BB; color:#fff; } то и /*******************/ .pagination { clear:both; padding:20px 0; position:relative; font-size:11px; line-height:13px; } .pagination span, .pagination a { display:block; float:left; margin: 4px 4px 4px 0; padding:9px 12px 8px 12px; text-decoration:none; width:auto; color:#fff; background: #555; } .pagination a:hover{ color:#fff; background: #3279BB; } .pagination .current{ background: #3279BB; color:#fff; } 

Вы даже можете использовать этот код для домашней страницы (когда пользовательская страница задана в качестве домашней страницы, разбиение на страницы обычно не работает). Так что просто позвонили страницы дважды, чтобы преодолеть эту проблему. Если вам все еще нужна помощь, свяжитесь со мной, и если я получу время, я должен вам помочь.