Как изменить структуру постоянных ссылок для пользовательских типов сообщений и их таксономии?

Это репортаж о более раннем вопросе, который у меня был, но я хотел бы получить более подробную информацию, чтобы иметь возможность полностью решить эту проблему.

Таким образом, с (нормальными) сообщениями, изменяющими постоянную ссылку, так же просто, как и в «Настройки»> «Постоянная ссылка» и путем изменения ее на все, что вам нравится, например, широко используемое %category%/%postname%.html . Все это работает. Если бы это было так же просто для персонализированного типа сообщения и его таксономии.

Так что это то, что мне нравится делать.

  1. http://mywordpress.com/portfolio.html – Показать все сообщения во всех категориях.
  2. http://mywordpress.com/portfolio/music/ – Показать все сообщения в этой категории.
  3. http://mywordpress.com/portfolio/music/trance/ – Показать все сообщения этой категории (ребенка).
  4. http://mywordpress.com/portfolio/music/trance/Tiesto.html – Показать сообщение.

До сих пор я получил следующее:

  1. Сначала я создал проект custom_post_type имени и taxonomy project_category .
  2. Я создал страницу «Портфолио» и дал ей шаблон страницы, в котором будут перечислены все сообщения post_type = project . Как я могу добавить .html в постоянную ссылку на страницы? Теперь он ссылается на http://mywordpress.com/portfolio, пока я хочу http://mywordpress.com/portfolio.html . Это должно решить первый вопрос.
  3. Тогда все станет жестким, потому что мы не знаем, как это сделать, и сколько подкатегорий есть, может быть, их даже нет. Итак, структура, которой мы являемся, – portfolio/(CATEGORY PATH FROM TOP TO CHILD)/post.html . Я все еще придерживаюсь этого момента. Я думаю, мне нужно каким-то образом добавить последнюю категорию в путь и передать это по проекту_категории , что должно привести к файлу taxonomy.php, где я могу обработать его правильно.
  4. Я не занимался этим ни %postname%.html них, но должен был что-то сделать с %postname%.html в конце чего-то.

Я надеюсь, что моя проблема ясна и что есть смелые разработчики, которые помогут мне решить эту проблему, которая уже заставляет меня заняться в течение четырех ПОЛНЫХ дней!

Solutions Collecting From Web of "Как изменить структуру постоянных ссылок для пользовательских типов сообщений и их таксономии?"

Хорошо, я думаю, у меня может быть решение. Я понятия не имею, правильно ли это сделать, но на данный момент это единственное, что работает.

 add_filter('rewrite_rules_array', 'mmp_rewrite_rules'); function mmp_rewrite_rules($rules) { $newRules = array(); $newRules['portfolio/(.+)/(.+?).html$'] = 'index.php?project=$matches[2]'; $newRules['portfolio/(.+)/?$'] = 'index.php?project_category=$matches[1]'; return array_merge($newRules, $rules); } add_filter('request', 'mmp_rewrite_request'); function mmp_rewrite_request($vars) { if (isset($vars['project_category'])) { if (strpos($vars['project_category'], '/') !== false) { $categories = explode('/', $vars['project_category']); $vars['project_category'] = $categories[count($categories) - 1]; } } return $vars; } 

2 Различные методы:

* См. Примечания внизу этой публикации.

например, вы хотите иметь такую ​​постоянную ссылку:
/ MAIN_CATEGORY / SUB_CAT_2 / Another_SUBCAT / мой пост-

Сначала вам может потребоваться установить постоянные ссылки в /% category% /% postname% . Затем…

СПОСОБ 1:

создайте СТАНДАРТНЫЕ категории ( MAIN_CATEGORY , SUB_CAT_1 and etc.. ) и зарегистрируйте CUSTOM POST, включая этот параметр:

 'taxonomies' => array('category'..) 

и использовать эти коды для изменения постоянных ссылок: https://wordpress.stackexchange.com/a/195643/33667
Затем, опубликовав CUSTOM POST (если он указан в категории), URL будет выглядеть следующим образом:
example.com/MAIN_CATEGORY/SUB_CAT_1/my-post

СПОСОБ 2:

(ps этот метод не рекомендуется, если вы планируете публиковать сотни или тысячи сообщений)

зарегистрируйте CUSTOM POST (названную MAIN_CATEGORY ), включая следующие параметры:

  "supports" => array('page-attributes'...... "hierarchical" => true, 

затем опубликуйте пользовательские сообщения следующим образом:
(т. е. опубликовать несколько пользовательских сообщений с именем SUB_CAT_2, SUB_CAT_1.. После этого, когда вы публикуете другое сообщение, но выберите SUB_CAT_2 как родительский.

п.с.
1) Если вы новичок, просмотрите: зарегистрируйте CUSTOM POST и зарегистрируйте CUSTOM POST с TAXONOMY
2) если вам понадобятся функции поиска для под-уровней, то используйте пользовательский поисковый запрос

После нескольких ударов головой я нашел этот плагин очень полезным.

https://wordpress.org/plugins/custom-post-type-permalinks/

Ниже приведен снимок экрана, который он дает.

введите описание изображения здесь