Объединить 2 разных пользовательских пули в одну постоянную ссылку?

Нужна помощь в этом переписывании URL. У меня есть 2 настраиваемых сообщения, «компания» и «работа». У меня есть страница с одной компанией и страница с одной работой, которая работает нормально. У компании может быть много рабочих мест, и я управляю отношениями между рабочими местами и компанией, использующей почтовую мета.

URL единственной компании: http://..../company/abc-intl , а URL-адрес для работы – http://..../job/photoshop-designer .

Я хочу, чтобы один URL-адрес задания включал пул компании, к которой она принадлежит. Таким образом, для примера выше, он должен быть http://..../company/abc-intl/job/photoshop-designer .

Я много пробовал с 'add_rewrite_rule', 'add_rewrite_tag', но, похоже, не работал. Пожалуйста, какие-либо идеи о том, как достичь этого URL?

Solutions Collecting From Web of "Объединить 2 разных пользовательских пули в одну постоянную ссылку?"

Вот решение, если кто-то сталкивается с таким «странным» требованием;) Кроме того, когда публикуется CPT задания (или любой CPT, который вы хотите связать), вам нужно сохранить идентификатор компании CPT (чей пул будет использоваться для образуя другую часть permalink) в качестве метаданных для работы.

 <?php add_filter('init', 'add_page_rewrite_rules'); function add_page_rewrite_rules(){ global $wp_rewrite, $wp; add_rewrite_rule('^company/([^/]+)/job/([^/]+)', 'index.php?company=$matches[1]&job=$matches[2]', 'top'); $job_structure = '/job/%job%'; $wp_rewrite->add_rewrite_tag("%job%", '([^/]+)', "job="); $wp_rewrite->add_permastruct('job', $job_structure, false); } add_filter('post_type_link', 'job_permalink', 10, 3); function job_permalink($permalink, $post_id, $leavename) { $post = get_post($post_id); $rewritecode = array( '%job%', 'job' ); if ( '' != $permalink && !in_array($post->post_status, array('draft', 'pending', 'auto-draft')) ) { job_link = ''; if ( strpos($permalink, 'job') !== false ) { $company_id = get_post_meta($post->ID, 'job_company_id', true); $company = basename(get_permalink($company_id)); $job_link = 'company'.'/'.$company; } $rewritereplace = array( $post->post_name, $job_link.'/job' ); $permalink = str_replace($rewritecode, $rewritereplace, $permalink); } else { // if they're not using the fancy permalink option } return $permalink; } ?> 

Надеюсь, это поможет кому-то! Вы можете связаться со мной, если застряли во время реализации этого.