Parent cpt / child custom post type URL permalink relationship

Estou tentando configurar um relacionamento no WordPress entre dois tipos de postagem personalizados que criei e exibo esse relacionamento dentro da estrutura de URL de permalink de cada tipo de publicação.

Eu criei dois tipos de postagem personalizados de solution_cpt e solution_offering_cpt . Existe um relacionamento de um a outro de ‘solution_cpt’ para ‘solution_offering_cpt’ . Em outras palavras, cada ‘solution_offering_cpt’ nunca terá mais de um pai ‘solution_cpt’ . Este é um relacionamento um-para-um.

A maneira como eu estou relatando cada publicação ‘solution_offering_cpt’ é pseudo ‘solution_cpt’ post pai é com uma taxonomia personalizada. Toda vez que uma publicação ‘solution_cpt’ é criada, eu tenho uma function que irá criar um novo termo e adicioná-lo à minha taxonomia personalizada. Claro, se o post ‘solution_cpt’ for excluído em uma data posterior, eu também tenho uma function para remover esse termo da taxonomia.

A estrutura de URL que estou tentando criar é:

/solution/solution_cpt/solution_offering_cpt 

O primeiro nível de /solution/solution_cpt está funcionando e aponta para a postagem correta no site. (A página que usa no meu tema é ‘single-solution_cpt.php’.) É o URL do segundo tipo de publicação (ou seja, /solution/solution_cpt/solution_offering_cpt ) que não está funcionando corretamente e me dando um erro 404. (PS. Eu esvaziei meus permalinks várias vezes).

Veja como registrei meus dois tipos de postagem personalizados e configurei minha taxonomia personalizada:

 // Register post types function ta_create_post_types() { register_post_type('solution_cpt', $labels, 'hierarchical' => false, 'public' => true, 'has_archive' => false, 'rewrite' => array('slug' => 'solution'), 'capability_type' => 'post' ); register_post_type('solution_offering_cpt', $labels, 'hierarchical' => false, 'public' => true, 'has_archive' => false, 'rewrite' => array('slug' => 'solution/%solution_cat%'), 'capability_type' => 'post' ); } add_action('init', 'ta_create_post_types', 0); // Create custom taxonomy function ta_create_custom_taxonomies() { register_taxonomy('solution_cats', array('solution_cpt', 'solution_offering_cpt'), $labels, 'hierarchical' => true, 'query_var' => true, 'rewrite' => array('slug' => 'solution') ); } add_action('init', 'ta_create_custom_taxonomies', 0); 

Eu também tenho duas funções que controlam a adição e remoção de termos da taxonomia personalizada ‘solution_cats’ quando uma nova publicação ‘solution_cpt’ é criada ou removida respeitosamente. Posso publicar esse código se isso beneficiar alguém. … queria apenas manter esse inquérito inicial o mais curto possível.

Nota: que os termos que são criados têm títulos espelhados e slugs do ‘solution_cpt’ criado. Então, por exemplo, se eu criasse uma postagem de “solução” de “Serviços de Criação”, então um termo seria criado automaticamente e adicionado à taxonomia com um título de “Serviços de Criação” e seu slug configurado para “creative- Serviços”.

Estou supondo que eu preciso usar a API do WordPress Rewrite para extrair a estrutura de URL que eu preciso. Mais uma vez, essa estrutura é:

 /solution/solution_cpt/solution_offering_cpt 

Aqui está o código de reescrita atual que eu tenho:

 // Build the 'solution_offering_cpt' URL function ta_add_rewrite_rules() { global $wp_rewrite; $wp_rewrite->add_rewrite_tag('%solution_cat%', '([^/]+)', 'solution_cat='); $wp_rewrite->add_permastruct('offering', 'solution/%solution_cat%', false); } add_action('init', 'ta_add_rewrite_rules'); function filter_solution_offering_cpt_link($link, $post) { if ($post->post_type != 'solution_offering_cpt') return $link; if ($cats = get_the_terms($post->ID, 'solution_cats')) $link = str_replace('%solution_cat%', array_pop($cats)->slug, $link); return $link; } add_filter('post_type_link', 'filter_solution_offering_cpt_link', 10, 2); 

Tudo o que consigo é um erro de 404 ao tentar navegar para uma publicação ‘solution_offering_cpt’ . Um exemplo é que eu criei uma postagem de “solução_cpt” de “Serviços de Criação” e slug “serviços criativos”, e um post de título “UI / UX” de solução “ de solução_offering_cpt” e slug “ui-ux”.

Quando navego para /solution/creative-services/ui-ux recebo um erro 404. Eu corvei meus permalinks. Não tenho certeza de onde eu estou indo errado, mas tenho certeza que minhas reescritas estão apagadas. O WordPress Rewrite API é um urso e a documentação é terrível !! Agradeceria grandemente a ajuda nessas pessoas e galões. Obrigado!

Solutions Collecting From Web of "Parent cpt / child custom post type URL permalink relationship"