Windhack
@Windhack
developer

Как вывести пагинацию на статической главной странице?

Доброго времени суток! С помощью плагина Types создал произвольный тип записи, у меня это "Туры". В настройках чтения стоит статическая главная страница, создал front-page.php скопировал туда весь код page.php, а в нужном месте добавил цикл вывода туров:
<?php
	$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
	$args = array(
		'posts_per_page' => 6,
		'post_type' => 'turs',
		'paged' => $paged,
		'meta_query' => array(
			'relation' => 'OR',
			array(
				'key' => 'wpcf-hot_turs',
				'value' => '1'
			)
		)
	);
	$query = new WP_Query( $args );
	if ( $query->have_posts() ) {
		while ( $query->have_posts() ) {
			$query->the_post();
			get_template_part( 'template/content-turs', get_post_format() );
		}?>
		<div class="col-lg-12">
			<?php the_posts_navigation(); ?>
		</div>
	<?php } else {
		get_template_part( 'template/content', 'none' );
	}
	wp_reset_postdata();
?>

6 туров вывелось, а вот пагинации нет, в чем может быть причина?
И еще может быть подскажите как делать формы фильтры для таких вот выводов произвольных записей, буду очень благодарен!
  • Вопрос задан
  • 2309 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Стандартные функции пагинации на статической главной работать не будут, так как не могут. Статическая главная страница - это страница. Объект типа "page". Там переменной paged быть не может.

Почитайте тут: wordpress.stackexchange.com/questions/185075/wp-qu...
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
UPD. 2020 год.
Вот рабочий код для отображении пагинации если вы на сайте создали шаблон для главной страницы, например template-home.php. В админке создаете страницу и называете ее Главная. Заетм выбираете справа на странице Шаблон, который вы создали для этой страницы(в нашем случаее это template-home.php).
После в настройках чтения отмечаем чекбокс Статическую страницу и выбираем Главная страница - Главная.

В файле template-home.php должен быть код => характера:
<?php
/**
 * Template Name: Home Page
 */
?>

<?php get_header(); ?>

<?php

$paged = (get_query_var('page')) ? get_query_var('page') : 1;

$args = array(
	'post_type'      => 'post',
	'orderby'        => 'date',
	'order'          => 'DESC',
	'paged' => $paged
);
$q = new WP_Query($args);
$temp_query = $wp_query;
$wp_query   = NULL;
$wp_query   = $q;
?>

<?php if ( $q->have_posts() ) : ?>

	<?php while ( $q->have_posts() ) : $q->the_post(); ?>

		<?php get_template_part( 'sections/content'); ?>

	<?php endwhile; ?>
	
	<?php the_posts_pagination(); ?>

<?php else : ?>

	<?php get_template_part( 'sections/content', 'none' ); ?>

<?php endif; ?>

<?php wp_reset_postdata(); ?>

<?php $wp_query = NULL; ?>
<?php $wp_query = $temp_query; ?>
Ответ написан
Комментировать
@Lin69x
Доброго времени суток! Такая проблема:
Вывожу произвольный тип постов методом query_posts()
Внизу подключаю ajax пагинацию, всё работает и на статических страницах, и в архивах.
А на главной странице загружает точно такие же записи. Подскажите, пожалуйста, как можно исправить.
Код:
$args = array( 'post_type' => 'custom-type', 'posts_per_page' => 8, 'order' => 'DESC', 'page' => get_query_var('paged'), );
query_posts($args);
while ( have_posts() ) : the_post();

get_template_part( 'content-reading', get_post_format() );

endwhile;
echo ''; echo next_posts_link(__('Показать ещё')); echo '';
wp_reset_query();
Ответ написан
Комментировать
deniqwe
@deniqwe
tl;dr
РЕШЕНИЕ (возможно кто-то до сих пор его ищет):
В корне темы создаем файл front-page.php. Содержимое файла:
<?php
get_header();

$paged = (get_query_var('page')) ? get_query_var('page') : 1;

$args = [
    'cat' => 7, //ваша категория
    'posts_per_page' => 10, //количество выводимых постов
    'paged' => $paged
];
query_posts($args);
if(have_posts()):
      while (have_posts()): the_post();
             /** ваш код **/
      endwhile;
endif;

get_footer();


В админке:
1) Заходим Страницы / Добавить новую. Добавляем новую, называем ее Главная. Жмем Опубликовать.
2) Заходим Настройки / Чтение .
Находим На главной странице отображать.
Выбираем Статическую страницу и в выпадающем списке Главная страница: страницу Главная
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы