Нет времени читать)
Вот код с моего functions.php
function my_pagination() {
global $wp_query;
$big = 999999999; // уникальное число для замены
$args = array(
'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) )
,'format' => ''
,'current' => max( 1, get_query_var('paged') )
,'total' => $wp_query->max_num_pages
);
$result = paginate_links( $args );
$result = str_replace( '/page/1/', '', $result );
echo $result;
}
вызови где тебе нужно функцию <?php my_pagination(); ?>
Не, это я уже пробовал, не подойдет. Открывается в любом случае шаблон index.php, если только не сделать так чтобы при открытии /optimization/page/(любой номер)/ открывался нужный шаблон с пагинацией.
Чувак я уверен что у тебя правильный код, но это не то.
Вызови где у тебя цикл выводит записи.
Проинспектируй ссылки которые выводит цикл и скинь сюда.
Так я тебе про что и говорю у меня в шаблоне optimization.php
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>
<article>
<header><h2><?php the_title(); ?></h2><time pubdate><?php the_time('j M Y'); ?></time></header>
<div class="avtor">Автор: <?php the_author(); ?></div>
<?php if ( has_post_thumbnail() ) { the_post_thumbnail();} ?><?php the_excerpt(); ?>
<footer><mark><?php the_tags(); ?> </mark><a href="<?php the_permalink(); ?>">Читать далее</a></footer>
</article>
<?php endwhile; ?>
<?php my_pagination(); ?> // тут в принципе без разницы твою функцию вставлять или стандартную, все равно одно и тоже откроет index.php
<?php endif; ?>
Сейчас не могу я на работе, так по памяти скажу.
открывается десять записей(как прописано в настройках), далее идут цифры с пагинацией.
Если жму на цифру открывается ссылка /optimization/page/2/ если это цифра 2 и шаблон index.php (вычислил эксперементально)
Если открываю запись, то здесь всё стандартно: /optimization/название-статьи-английскими-буквами/
что за шаблон optimization.php подозрительный?
https://codex.wordpress.org/images/1/18/Template_Hierarchy.png
не вижу в иерархии возможности задавать шаблоны только через ярлык рубрики.
Это не шаблон подозрительный, а вы:-) У шаблона категории на самом деле имя category-optimization.php
Возник такой вопрос, может кто знает. Например, у меня есть шаблон категории для вывода записей из этой же категории, условно назовём его category-{slug}.php
В нем есть такой код:
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>
<article>
<header><h2><?php the_title(); ?></h2><time pubdate><?php the_time('j M Y'); ?></time></header>
<div class="avtor">Автор: <?php the_author(); ?></div>
<?php if ( has_post_thumbnail() ) { the_post_thumbnail();} ?><?php the_excerpt(); ?>
<footer><mark><?php the_tags(); ?> </mark><a href="<?php the_permalink(); ?>">Читать далее</a></footer>
</article>
<?php endwhile; ?>
<?php the_posts_pagination(); ?> // ну или любой вызов функции, плагина и т.п.
<?php endif; ?>
Пагинация видна на страничке категории — здесь, всё отлично! Как только я нажимаю на кнопку пагинации открывается страничка мой_сайт/{SLUG}/page/2/ // цифра «2» условная, может быть другая, в зависимости какой № кнопки нажат при пагинации
Какой при этом шаблон должен использоваться?
Скорее всего должен использоваться шаблон category-{slug}.php, но у меня почему-то используется при любых раскладах index.php в котором в принципе, неоткуда взяться записям, если их там не прописать.
В чём может быть причина открытия неправильного файла шаблона и как это можно исправить?
Ребята! Я наконец-то решил проблему. Методом «танца с бубном».
Короче рассказываю. В админке в настройках Постоянных ссылок
добавил префикс category и во всех шаблонах изменил ссылки типа <a href="<?php bloginfo('url') ?>/optimization/" ></a>
на
<a href="<?php bloginfo('url') ?>/category/optimization/" ></a>
соответственно. И о чудо! мой_сайт/{SLUG}/page/2/, которая не выводила пагинацию и нужный шаблон стала работать немного под другим именем
мой_сайт/category/{SLUG}/page/2/
то есть сначала сами нахимичили с ЧПУ, потом сами исправили.
Нет, с ЧПУ я нахимичил чтобы исправить, там было всё отлично. Не было префикса для рубрик
Проблема та же, но решение не подошло.
Есть у кого еще подобная проблема решенная? Код вывода записей на странице рубрики такой:
<?php
$cur_cat_id = get_cat_id(single_cat_title("",false));
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array('posts_per_page' => 3, 'paged' => $paged, 'post_type' => 'portfolio', 'category__in' => $cur_cat_id);
$postslist = new WP_Query( $args );
if ( $postslist->have_posts() ) :
while ( $postslist->have_posts() ) : $postslist->the_post();
echo '<div class="row content__horizontal-item">';
echo '<a href="' . get_permalink() . '">';
echo the_post_thumbnail('portfolio_big_list');
echo '<div class="content__horizontal-item-title">';
echo the_title();
echo '</div>';
echo '<span>Узнать подробнее >></span>';
echo '</a>';
echo '</div>';
endwhile;
echo '<div class="row pages"><ul class="pages__ul %1$s" role="navigation">';
$big = 999999999;
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $postslist->max_num_pages,
'prev_text' => __('«'),
'next_text' => __('»'),
'show_all' => false, // показаны все страницы участвующие в пагинации
'end_size' => 2, // количество страниц на концах
'mid_size' => 2, // количество страниц вокруг текущей
) );
echo '</ul></div>';
endif;
?>
На странице category/category-slug/ — все ок. И посты есть и пагинация.
А вот на странице category/category-slug/page/2 … category/category-slug/page/N не цепляется шаблон category.php.
-
Ответ изменён 7 лет, 8 месяцев назад пользователем lidolov.
-
Ответ изменён 7 лет, 8 месяцев назад пользователем lidolov.
Проблема та же, но решение не подошло.
Создайте свою тему, согласно правилам форума.