Я обнаружил, что это место было хорошим источником информации в прошлом благодаря многочисленным поискам в Google для проблем, с которыми я столкнулся. Мой вопрос относится к многословным правилам переписывания, которые использует WordPress.
Я настроил пользовательский тип записи под названием проект и зарегистрировал собственную таксономию проектов . Все отлично работает, за исключением параметров перезаписи слагов, поскольку они в конечном итоге конфликтуют - скорее всего, из-за правил перезаписи.
По сути, это структура, которую я хочу достичь:
example.com/work/%taxonomy%/%post_name%/
(для сообщений)example.com/work/%taxonomy%/
(перечислить сообщения, относящиеся к определенному таксономическому термину)example.com/work/
(переходит на страницу page-work.php, в которую входит файл taxonomy.php, чтобы просмотреть все сообщения, связанные с этой таксономией)
Вот код, который у меня есть, но мне нужна помощь в написании правил WP_Rewrite, так как я немного озадачен.
$labels = array(
'name' => _x('Projects', 'post type general name'),
'singular_name' => _x('Project', 'post type singular name'),
'add_new' => _x('Add New', 'project item'),
'add_new_item' => __('Add New Project'),
'edit_item' => __('Edit Project'),
'new_item' => __('New Project'),
'view_item' => __('View Project'),
'search_items' => __('Search Projects'),
'not_found' => __('Nothing found'),
'not_found_in_trash' => __('Nothing found in Trash'),
'parent_item_colon' => ''
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'hierarchical' => true,
'rewrite' => array('slug'=>'work', 'with_front'=>false),
'show_ui' => true,
'_builtin' => false, // It's a custom post type, not built in!
'capability_type' => 'post',
'query_var' => "project", // This goes to the WP_Query schema
'menu_position' => null,
'supports' => array('title','editor','thumbnail', 'comments', 'author', 'excerpt')
);
register_post_type('project' , $args);
// Showcase Taxonomy
register_taxonomy('projects', array('project'), array(
'public' => true,
'hierarchical' => true,
'label' => 'Project Categories',
'singular_label' => 'Project Category',
'query_var' => true,
'rewrite' => array('slug'=>'work', 'with_front'=>false, 'hierarchical'=>true)
)
);
Большое спасибо за вашу помощь! :-)
Ответы:
Надеюсь, что это может решить вашу проблему
то, что вам нужно создать, это archive-work.php (ваш тип архива записей) и taxonomy.php, которые будут использоваться для отображения вашего собственного архива таксономии.
источник
У меня была та же проблема, и после долгих попыток я нашел это решение.
Просто добавьте это в свой код
источник
functions.php
в этом случае. Код для плагина и темы точно такой же, разница только в темах, в которые он всегда входит,functions.php
или в файле, включенномfunctions.php
after_switch_theme
крючок, это плохо для 3.3 (IIRC).Более подробное объяснение есть в другом посте , но вот основные части, которые вам нужно добавить:
Зарегистрируйте свои таксономии и cpt как вы. Убедитесь, что ваш перезаписывающий слаг для таксона «basename», а перезаписывающий слаг для cpt - «basename /% tax_name%».
Скажите WordPress, что делать с "% tax_name%" следующим образом:
источник