Intereting Posts
Почему возникает фатальная ошибка: вызов неопределенной функции get_most_recent_post_of_user ()? Тема: Двадцать четырнадцать, Карусель Слайдер по категориям ниже заголовка Помощники подсказки для WordPress Добавление кнопки «Добавить запись» для редактирования страницы публикации Поиск функций Фильтровать или заказать на основе настраиваемого поля родительская страница захватывает неправильный URL-адрес для дочерних страниц – get_page_uri ($ pageChild) WordPress Insert не работает с ajax Сделать сообщения автоматически из файла XML в Интернете через wp cron job Установить ограничение времени сеанса для защищенных паролем сообщений Установить номер сообщения на отдельные сообщения блог wordpress в подкаталоге или поддомене Как добавить sms-уведомление для заказов в woocommerce? Вспышка облака, кеш, минимизировать вопрос Как добавить пользовательский URL-адрес для страницы?

Объединить 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; } ?> 

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