Intereting Posts
удаленные пользователи по-прежнему отображаются в графе? Ошибка при установке соединения с базой данных при установке Отображать ссылку только на социальные сети автора, когда она существует Вызов неопределенной функции wp_insert_user () Скрыть редактор, сохраняя кнопку добавления мультимедиа в настраиваемом типе сообщений Сортировка сообщений по пользовательским полям Попытка настроить субдомен dev, но url загружается как / dev / вместо Получать сообщения с одинаковым значением мета как текущее сообщение Пользовательское значение URL не сохраняется? Пользовательские типы сообщений и архивы Как удалить повторяющийся запрос на загрузку страницы или сделать их доступными для кэширования $ GLOBALS переменная пустая Что такое <# code #> в media-template.php и как он работает? Получение пользовательской ссылки на вложение Детская тема на основе набора инструментов не найдена

Постоянная ссылка Переписать с архивом – Архив получает 404

У меня есть пользовательский тип сообщения, «игрушки», с пользовательской таксономией «toy_series». Я хотел получить обычную таксономию на постоянной основе:

domain/toys/toy_series/toy-name 

Я получил, что работает отлично, изменив переписку на тип сообщения, чтобы:

 /toys/%toy_series% 

и редактирование структуры ссылок с помощью post_type_link в моих functions.php:

 function append_query_string( $link, $post ) { if ( 'toys' == get_post_type( $post ) ) { // Get post $post = get_post($post_id); if (!$post) return $permalink; // Get taxonomy terms $terms = wp_get_object_terms($post->ID, 'toy_series'); if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) $taxonomy_slug = $terms[0]->slug; else $taxonomy_slug = 'no-series'; return str_replace('%toy_series%', $taxonomy_slug, $link); } return $link; } add_filter( 'post_type_link', 'append_query_string', 10, 2 ); 

Тем не менее, я тогда обнаружил, что ссылка на архив игрушек терпит неудачу, потому что она пыталась перейти на новую игрушку переписать. Ссылка в меню была domain/toys/%toy_series% Made sense. Итак, я изменил переписку для самого архива, чтобы быть /toys/

Это снова изменило ссылку в меню, но теперь я получаю 404 на странице архива. У меня есть собственный шаблон с именем archive-toys.php , но WP, похоже, не хочет его использовать. Он по умолчанию возвращает index.php (я еще не создал 404.php) и ничего не выводил.

Что я пропустил?

Благодаря!


В соответствии с просьбой я добавляю в код для СРТ и таксономии. Я использую плагин CPT UI, поэтому у меня нет контроля над порядком.

  $labels = array( "name" => "Toys", "singular_name" => "Toy", "menu_name" => "Toys", "all_items" => "All Toys", "add_new" => "Add New", "add_new_item" => "Add New Toy", "edit" => "Edit", "edit_item" => "Edit Toy", "new_item" => "New Toy", "view" => "View", "view_item" => "View Toy", "search_items" => "Search Toys", "not_found" => "No Toys Found", "not_found_in_trash" => "No Toys Found in Trash", "parent" => "Parent Toy", ); $args = array( "labels" => $labels, "description" => "", "public" => true, "show_ui" => true, "has_archive" => true, "show_in_menu" => true, "exclude_from_search" => false, "capability_type" => "post", "map_meta_cap" => true, "hierarchical" => false, "rewrite" => array( "slug" => "/toys/%toy_series%", "with_front" => true ), "query_var" => true, "supports" => array( "title", "revisions" ), "taxonomies" => array( "toy_series", "factions" ) ); register_post_type( "toys", $args ); $labels = array( "name" => "toy_series", "label" => "Toy Series", ); $args = array( "labels" => $labels, "hierarchical" => true, "label" => "Toy Series", "show_ui" => true, "query_var" => true, "rewrite" => array( 'slug' => 'toy_series', 'with_front' => true ), "show_admin_column" => false, ); register_taxonomy( "toy_series", array( "toys" ), $args );