Я создаю тему Wordpress, которая использует сообщения по умолчанию и три дополнительных типа сообщений. Пока все хорошо, все работает нормально. Я использовал стандартную функцию пользовательского типа сообщения для вызова всех трех дополнительных функций.
Я создал статические страницы для каждого из этих CPT + сообщений по умолчанию. Все это работает нормально, и нумерация страниц работает нормально. Я применил тот же код к категории.php.
Однако...
Я не могу понять, почему нет нумерации страниц. не работает на странице категории должным образом.
Это работает для стандартной категории Wordpress по умолчанию (Без категории, которую я изменил на Общая) ) абсолютно нормально, но не для других категорий. На практике код хорош, но если я посмотрю на рендеринг другой категории, то обнаружит, что он неправильно подсчитал количество сообщений, добавляет слишком много чисел к нумерации страниц и выдает ошибку 404 на второй странице.
Однако мне кажется, что я упустил какую-то жизненно важную функциональную команду для явного включения всех категорий. Нужно ли мне что-то добавить в запрос->set в последнем примере функции ниже, чтобы все заработало? Чего я не сделал?
Я прочитал много статей здесь и в других местах, пытаясь решить проблему, но пока безуспешно. Я думаю, что я где-то не объединяю логику
Три CPT включены в function.php :
'has_archive' => true, 'taxonomies' => array('category','post_tag' ),'show_in_rest' => true,
Запрос для каждой статической индексной страницы включает этот запрос
(Кстати, я знаю, что у меня есть два сообщения на странице, но я думаю, что второе сообщение игнорируется). В настройках Wordpress у меня установлено 12 сообщений. К вашему сведению, этот счетчик нужен для того, чтобы убедиться, что на дисплее чередуются изображения справа и слева, а также работает хорошо.
Затем у меня есть нумерация страниц, которая работает нормально и вызывается с любой страницы. автор:
При этом вызывается this в файле function.php
function pagination_bar( $query_wp )
{
$pages = $query_wp->max_num_pages;
$big = 999999999; // need an unlikely integer
if ($pages > 1)
{
$page_current = max(1, get_query_var('paged'));
echo paginate_links(
array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => $page_current,
'total' => $pages,
'prev_text' => __( '« Previous' ),
'next_text' => __( 'Next »' ),
));
}
}
Пока все хорошо...
Все категории являются общими для всех пользовательских типов сообщений и сообщений по умолчанию. На страницах категорий отображается «ОК». Категории являются общими и обновляются глобально при редактировании.
Я добавил это в файл function.php, чтобы убедиться, что страница категории включает все пользовательские типы сообщений.// add custom post types for default category template
function custom_post_type_cat_filter($query) {
if ( !is_admin() && $query->is_main_query() ) {
if ($query->is_category()) {
$query->set( 'post_type', array( 'post','[CUSTOM POST TYPE 1]','[CUSTOM POST TYPE 2]','[CUSTOM POST TYPE 3]') );
}
}
}
add_action('pre_get_posts','custom_post_type_cat_filter');
Подробнее здесь: https://stackoverflow.com/questions/788 ... tion-issue