Intereting Posts
Проблема с вызовом пользовательской функции в цикле foreach Использование функции «Последние сообщения» на другом сайте <a> и <img> не работает Зачем использовать admin-ajax.php при загрузке страниц через AJAX? MU: Там 3 супер админа, но он говорит, что есть 5 Способ запроса пользовательских таксономий по названию Создайте пользовательскую возможность, позволяющую редактору редактировать только пользователей «Абонента» Есть ли возможность / плагин роли пользователя, который позволяет вам указывать «сообщения» не «пользовательские сообщения»? Как добавить подменю третьего уровня в меню администратора WordPress Как заставить функцию работать в качестве последней при сохранении сообщения? Как я могу разделить результат запроса на 2 массива? Два способа создания страниц WordPress $ wpdb-> update не обновляет поле в базе данных Переименование вложений при загрузке независимо от типа файла Как отформатировать первую строку сообщения по-другому?

Как добавить пользовательскую цепочку таксономии в CPT permalink?

Это код, который у меня есть до сих пор, чтобы добавить articles CPT и articles-category articles таксономии.

Код работает, соберите. Страницы корректно перемещаются (когда я обращаюсь к ним напрямую):

articles/

articles/categ-slug/

articles/categ-slug/post-slug/

Проблема возникает, когда постоянная ссылка генерируется автоматически (например: yoast breadcrumbs)

 <span typeof="v:Breadcrumb"> <a href="example.com" rel="v:url" property="v:title">Example</a> / <span rel="v:child" typeof="v:Breadcrumb"><a href="example.com/articles/%articles-category%/" rel="v:url" property="v:title">Articles</a> / <span rel="v:child" typeof="v:Breadcrumb"><a href="example.com/articles/categ-slug/" rel="v:url" property="v:title">Category name</a> / <span class="breadcrumb_last">Post Name</span></span></span></span> 

Обратите внимание на example.com/articles/ articles-category% / где это должно быть просто example.com/articles/

Что не так в коде и как я могу заставить его работать?

 function custom_post_articles() { $labels = array( // labels ); $args = array( 'labels' => $labels, 'public' => true, 'menu_position' => 5, 'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments' ), 'has_archive' => true, 'hierarchical' => true, 'rewrite' => array('slug' => 'articles/%articles-category%','with_front' => false), 'query_var' => true, //'rewrite' => true, //'publicly_queryable' => false, ); register_post_type( 'articles', $args ); } add_action( 'init', 'custom_post_articles' ); function my_taxonomies_product() { $labels = array( //labels ); $args = array( 'labels' => $labels, 'hierarchical' => true, 'public' => true, 'query_var' => 'articles-category', 'rewrite' => array('slug' => 'articles' ), '_builtin' => false, ); register_taxonomy( 'articles-category', 'articles', $args ); } add_action( 'init', 'my_taxonomies_product', 0 ); add_filter('post_link', 'articles_category_permalink', 1, 3); add_filter('post_type_link', 'articles_category_permalink', 1, 3); function articles_category_permalink($permalink, $post_id, $leavename) { if (strpos($permalink, '%articles-category%') === FALSE) return $permalink; // Get post $post = get_post($post_id); if (!$post) return $permalink; // Get taxonomy terms $terms = wp_get_object_terms($post->ID, 'articles-category'); if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) $taxonomy_slug = $terms[0]->slug; else $taxonomy_slug = 'no-category'; return str_replace('%articles-category%', $taxonomy_slug, $permalink); }