Intereting Posts
Перемещение номеров страниц над плагинами Подсветка страниц подменю admin Как подключить нового пользователя к комментариям, которые они сделали, используя те же данные пользователя? Экспортировать весь контент из WordPress Создание формы пользовательского поиска Определите текущий процесс, который постоянно использует 5% CPU Как я могу добавить количество комментариев к этим подстраницам текущего фрагмента страницы Настройка темы с помощью панели администратора. (Внешний вид-Настройка) Автор сообщения изменен на admin после того, как его сообщение изменено администратором Меню WordPress – автоматически генерирует Пользовательский Ajax WP_Query возвращается пустым, если meta_query имеет более 7 значений Как WordPress обрабатывает взаимодействие HTML-таблиц с jQuery Я хочу искать в базе данных пользовательского типа после таксономии Как я могу настроить возможности WordPress list_users?

Пользовательские типы сообщений и постоянные ссылки

У меня есть пользовательский тип сообщения, называемый Контент, который имеет тип возможностей «page» и имеет значение 'hierarchical' => true . У меня есть две страницы с тем же именем «Дети», но у них разные родители. Что я должен делать по-другому, чтобы WP не отображал оба из них одновременно, независимо от того, из какого из двух URL-адресов я перехожу? Вот фрагмент моего кода, который отображает правила перезаписи:

 add_filter('rewrite_rules_array', 'mmp_rewrite_rules'); function mmp_rewrite_rules($rules) { $newRules = array(); $newRules['content/(.+)/(.+)/?$'] = 'index.php?content=$matches[2]'; $newRules['content/(.+)/?$'] = 'index.php?campus=$matches[1]'; return array_merge($newRules, $rules); } function filter_post_type_link($link, $post) { if ($post->post_type != 'content') return $link; if ($cats = get_the_terms($post->ID, 'campus')) { $link = str_replace('%campus%', get_taxonomy_parents(array_pop($cats)->term_id, 'campus', false, '', true), $link); // see custom function defined below } return $link; } add_filter('post_type_link', 'filter_post_type_link', 10, 2); // my own function to do what get_category_parents does for other taxonomies function get_taxonomy_parents($id, $taxonomy, $link = false, $separator = '/', $nicename = false, $visited = array()) { $chain = ''; $parent = &get_term($id, $taxonomy); if (is_wp_error($parent)) { return $parent; } if ($nicename) $name = $parent -> slug; else $name = $parent -> name; if ($parent -> parent && ($parent -> parent != $parent -> term_id) && !in_array($parent -> parent, $visited)) { $visited[] = $parent -> parent; $chain .= get_taxonomy_parents($parent -> parent, $taxonomy, $link, $separator, $nicename, $visited); } if ($link) { // nothing, can't get this working :( } else $chain .= $name . $separator; return $chain; } 

Два URL-адреса:

/ Содержание / Пеория / новый посетитель / дети /

/ Содержание / Пеория / подключение / следующее поколение / дети /

При переходе к одному из этих URL-адресов это должно быть только содержимое этой «страницы», а не содержимое обеих страниц на одной странице.

Какие-либо предложения? Я предполагаю, что область $ newRules нужно переделать.

Я не совсем уверен, что происходит здесь – havent слишком много сделал с переписываниями, подобными этому.

Но если это:

 $newRules['content/(.+)/(.+)/?$'] = 'index.php?content=$matches[2]'; $newRules['content/(.+)/?$'] = 'index.php?campus=$matches[1]'; 

Быть этим ?:

 $newRules['content/(.+)/(.+)/(.+)/?$'] = 'index.php?content=$matches[3]'; $newRules['content/(.+)/(.+)/?$'] = 'index.php?campus=$matches[2]'; 

Для сравнения:

 /content/peoria/new-visitor/children/ /content/peoria/connect/next-generation/children/ 

?