Intereting Posts
Установите cookie с использованием переменной GET Проверьте, имеет ли почта какой-либо термин в этой пользовательской таксономии? get_query_var возвращает неправильное значение по умолчанию Как переносить / WordPress папку с одного ПК на другой Преднамеренно превышать max_num_pages по основному запросу без получения 404? Загрузки Галерея плагин? Могу ли я перезапустить wordpress, не теряя сообщений, комментариев, носителей и виджетов? ajaxt возвращающий объект объекта Создание случайных почтовых ссылок Где-то в сообщении Сортировка нескольких настраиваемых типов сообщений без пары мета-ключ / значение по порядку сортировки Исключить категорию из запроса БД wp_query (или hook) по дате (id) в массиве, затем установите post_type Почему запросы сообщений помещаются на мои страницы? Используйте одну и ту же структуру константной ссылки на основе даты для всех типов сообщений Как перенаправить, только если страница не существует

Пользовательский почтовый тип / таксономия переписывает архив страницы 2 дает 404

Я следил за кодом, основанным на этом, и все работает отлично – как создать структуру permalink с пользовательскими таксономиями и настраиваемыми типами сообщений, такими как base-name / parent-tax / child-tax / custom-post-type-name

Поэтому я могу просматривать архивы таксономии с помощью

my/category (or) my/category/subcategory 

и просмотреть пользовательский пост, связанный с каждым термином, как

 my/category/subcategory/custompost 

Однако я не могу просмотреть

 my/category/page/2/ or my/category/subcategory/page/2/ 

Это дает мне 404.

Вот код, который я использую.

posttype.my.php

 function create_my_posttype() { register_post_type( 'my', array( 'labels' => array( 'name' => _x( 'Mys', 'post type general name' ), 'singular_name' => _x( 'My', 'post type singular name' ), 'add_new' => _x( 'New My', 'add new singular name' ), 'add_new_item' => __( 'Add New My' ), 'edit_item' => __( 'Edit My' ), 'new_item' => __( 'New My' ), 'view_item' => __( 'View My' ), 'search_items' => __( 'Search Mys' ), 'not_found' => __( 'No Mys Found' ), 'not_found_in_trash' => __( 'No Mys found in Trash' ), 'parent_item_colon' => '-:-' ), 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'my/%mycategory%', 'with_front' => true, 'pages' => true ), 'capability_type' => 'post', 'hierarchical' => true, 'show_in_nav_menus' => false, 'menu_position' => 50, 'supports' => array( 'title', 'editor', 'comments', 'shortlink' ), ) ); } add_action( 'init', 'create_my_posttype'); 

taxonomy.my.php

 add_action( 'init', 'create_my_taxonomies', 0 ); function create_my_taxonomies() { register_taxonomy( 'mycategory', 'my', array( 'labels' => array( 'name' => 'Mycategories', 'singular_name' => 'Mycategory', 'search_items' => 'Search Mycategories', 'all_items' => 'All Mycategories', 'parent_item' => 'Parent Mycategories', 'add_new_item' => 'Add New Mycategory', 'new_item_name' => "New Mycategory", 'edit_item' => 'Edit Mycategory', 'update_item' => 'Update Mycategory', 'add_new_item' => 'Add New Mycategory', 'new_item_name' => 'New MyCategory Name', 'menu_name' => 'Mycategory' ), 'query_var' => true, 'show_ui' => true, 'has_archive' => true, 'show_tagcloud' => false, 'hierarchical' => true, 'with_front' => true, 'rewrite' => array( 'slug' => 'my', 'with_front' => true, 'hierarchical' => true, ) ) ); } 

main.php

 include( 'posttype.my.php' ); include( 'taxonomy.my.php' ); add_filter('rewrite_rules_array', 'mmp_rewrite_rules'); function mmp_rewrite_rules($rules) { $newRules = array(); $newRules['my/(.+)/(.+)/(.+)/?$'] = 'index.php?my=$matches[3]'; $newRules['my/(.+)/?$'] = 'index.php?mycategory=$matches[1]'; return array_merge($newRules, $rules); } function filter_post_type_link($link, $post) { if ($post->post_type != 'my') return $link; if ($cats = get_the_terms($post->ID, 'mycategory')) { $link = str_replace('%mycategory%', get_taxonomy_parents(array_pop($cats)->term_id, 'mycategory', false, '/', true), $link); // see custom function defined below } return $link; } add_filter('post_type_link', 'filter_post_type_link', 10, 2); function get_taxonomy_parents($id, $taxonomy, $link = false, $separator = '/', $nicename = false, $visited = array()) { $chain = ''; $parent = &get_term($id, $taxonomy); if (is_wp_error($parent)) { return $parent; } if ($nicename) $name = $parent -> slug; else $name = $parent -> name; if ($parent -> parent && ($parent -> parent != $parent -> term_id) && !in_array($parent -> parent, $visited)) { $visited[] = $parent -> parent; $chain .= get_taxonomy_parents($parent -> parent, $taxonomy, $link, $separator, $nicename, $visited); } if ($link) { // nothing, can't get this working :( } else $chain .= $name . $separator; return $chain; } class main_app { function __construct() { } // end class main_app } 

Если кто-то может помочь или указать мне в правильном направлении, это было бы потрясающе. Я не хочу прибегать к отдельным пулам URL-адресов для таксономий и пользовательских типов сообщений: \ Нужно ли мне изменять правило перезаписи, чтобы включить что-то, что связано с «paged»?

благодаря

Solutions Collecting From Web of "Пользовательский почтовый тип / таксономия переписывает архив страницы 2 дает 404"

Возможно, повторение последнего запроса поможет отладить проблему.
Вставьте это на свою страницу 404:

 global $wpdb; echo "<pre>"; var_dump($wpdb->last_query); die(); 

Несколько месяцев назад я столкнулся с проблемой разбивки на страницы для пользовательских типов сообщений WordPress. Что действительно помогло мне в этой статье на Tuts +. Основная идея – связать свой шаблон страницы (page-my.php) с шаблоном страницы архива (archive-my.php). Это позволяет разбивать на страницы для пользовательских сообщений, а также небольшую пользовательскую функцию разбиения на страницы.

После выполнения шагов в статье я больше не получал страшный 404 при переходе на страницу 2 и далее.

Здесь вы можете увидеть рабочий пример