Intereting Posts
сохранить содержимое в wordpress wp_post таблицу базы данных Как удалить два (связанных) строк wp_postmeta? Автоматическое встраивание Vimeo / Youtube в настраиваемые поля (редактор tinyMCE) get_the_post_thumbnail () возвращает пустую строку в пользовательском типе сообщения Путь в dev-сервере работает; один и тот же путь в prod-сервере нарушен Мне нужно удалить все сообщения с моей домашней страницы и создать статическую главную страницу Предотвращение активации второго виджета Проблема с Get_attachment_link После клонирования WP сделать подкаталог, я не могу получить к нему доступ Как добавить настраиваемый мета-поле в разделе «Настройки галереи» в всплывающем окне «Редактировать галерею» Автоматически ли активированный плагин означает, что его методы доступны для других функций WP? перенаправление с общей страницы категории на другую Показывать текущую запись в браузере в качестве первого сообщения в цикле (для слайд-шоу) Вызов div и содержимого в php? Как я могу запрашивать сообщения из нескольких ролей?

Категория с типом pagination post type 404

У меня есть шаблон категории с пользовательским типом сообщения, который выглядит так:

<?php $category = get_query_var('cat'); $paged = (get_query_var("page")) ? get_query_var("paged") : 1; $args = array( 'cat' => $category, 'paged' => $paged, 'post_mime_type' => 'image', 'posts_per_page' => 9, 'post_status' => 'inherit', 'post_type' => 'attachment' ); query_posts($args); $count = $wp_query->found_posts; ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <a href="<?php the_permalink(); ?>"><?php echo wp_get_attachment_image($image->ID, "medium"); ?></a> <h5><?php the_title(); ?></h5> <?php $attachment = get_post(get_post_thumbnail_id()); // Get post by ID echo '<p>'.$attachment->post_content.'</p>' ?> <?php endwhile; endif; ?> <ul class="pagi"> <li><?php posts_nav_link(' | ','< Previous','Next >'); ?></li> <li><?php echo "(Page: ". $paged . " of " . $wp_query->max_num_pages .")"; ?></li> </ul> <?php wp_reset_query(); ?> 

Все работает, кроме пейджинга … когда я просматриваю страницу 2, url выглядит так: http://joshrodg.com/ourpictureshare/category/pictures/unknown/page/2/ , что составляет 404.

Я не уверен, как должен выглядеть URL-адрес, но я думаю, что тип сообщения в моем запросе вызывает проблему.

Может ли кто-нибудь указать мне в правильном направлении?

Благодаря,
мистифицировать

Solutions Collecting From Web of "Категория с типом pagination post type 404"

Я нашел решение!

Мне удалось найти функцию, которая изменила запрос на странице категории ( https://wordpress.org/support/topic/custom-types-category-pagination-404/#post-1913902 – на первой странице внизу , написанное: Mark / t31os).

Добавьте это в functions.php :

 add_action( 'parse_query','changept' ); function changept() { $category = get_query_var('cat'); $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; if (is_category() && !is_admin()) set_query_var( 'cat', $category ); set_query_var( 'paged', $paged ); set_query_var( 'posts_per_page', 9 ); set_query_var( 'post_status', 'inherit' ); set_query_var( 'post_type', 'attachment' ); return; } 

Вот как выглядит category.php :

 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <a href="<?php the_permalink(); ?>"><?php echo wp_get_attachment_image($image->ID, "medium"); ?></a> <h5><?php the_title(); ?></h5> <?php $attachment = get_post(get_post_thumbnail_id()); // Get post by ID echo '<p>'.$attachment->post_content.'</p>' ?> <?php endwhile; endif; ?> <ul class="pagi"> <li><?php posts_nav_link(' | ','< Previous','Next >'); ?></li> <li><?php echo "(Page: ". $paged . " of " . $wp_query->max_num_pages .")"; ?></li> </ul> 

ОБНОВИТЬ:

Я столкнулся с проблемой с моим решением … он выполнялся на всех страницах. Все страницы, кроме страницы категории, возвращали 404, поэтому мне нужно было запустить код только на странице категории, чтобы исправить проблему.

Вот обновленный код functions.php :

 $url = $_SERVER['REQUEST_URI']; if (strpos($url,'category') !== false) { add_action( 'parse_query','changept' ); function changept() { $category = get_query_var('cat'); $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; if (is_main_query()) { set_query_var( 'cat', $category ); set_query_var( 'paged', $paged ); set_query_var( 'posts_per_page', 9 ); set_query_var( 'post_status', 'inherit' ); set_query_var( 'post_type', 'attachment' ); } return; } } 

В основном, это проверяет, является ли слово «категория» частью URL-адреса, и потому что я использую это только на моей странице category.php , это будет работать, не затрагивая никакой другой страницы. Вероятно, есть лучшее решение, но это работает для моего проекта. Кроме того, еще один, if был добавлен для целевого основного запроса: is_main_query() … таким образом, если у вас есть другие запросы на странице, они все равно будут работать нормально.

Я уверен, что вы можете сделать что-то подобное с pre_get_posts , это предложение Майло, но я просто не мог понять, как использовать эту функцию с моим шаблоном.