Intereting Posts
Как сделать миниатюры изображениями в блогах Запрос базы данных не работает получить медиа-теги приложения или проверить, есть ли у него медиа-тег? Работа WordPress Cron Не работает Бесплатная доставка только для определенных товаров – или получить местный пикап в качестве опции, если элемент установлен на виртуальный Проблема хранения массивов с помощью update_user_meta используя get_option для добавления другого js Храните размещенное на сайте содержание с оригинальным заказом Удаление удаления вкладок редактора мультимедиа – Дубликаты Как я могу вызвать функцию из одного плагина внутри другого плагина? Использование JWT для аутентификации пользователя с помощью внешней системы? Плагин галереи изображений Показывать SQL, что WordPress работает Связанные сообщения отображаются случайным образом по тегу Как вручную активировать пользователя на панели управления только администратором

Перепишите query_var, который является term_id с иерархическими слизнями на неархивированных страницах

Я пытаюсь создать страницу пользовательских результатов, которая использует значения query_var для генерации 'slugified' URI результатов из параметризованного URI по причинам SEO. Я отредактировал этот вопрос пару раз, когда я занимался исследованием, возированием и уточнением проблемы.

В двух словах, моя проблема: как я могу заменить / переписать query_var, который является term_id с иерархическими слизнями?

Например:

Я работаю над проектом, где мне нужно использовать таксономию (на самом деле это CP-тономия , но я полагаю, что таксономия будет вести себя аналогичным образом) для «местоположений». Таким образом, theres 1) стандартная страница wp: '~ / results' (которая находится в центре внимания этого сообщения) и 2) архивы таксономии (cptonomy) (~ / location / cptonomy-1 / cptonomy-b и т. Д.),

Моя начальная точка:

function search_services_params( $query_v ) { $query_v[] = "dest_id"; $query_v[] = "dest_state"; $query_v[] = "dest_city"; return $query_v; } function custom_rewrite_rules( $existing_rules ) { $new_rules = array( 'results/([^/]+)/([^/]+)/([^/]+)/?$' => 'index.php?pagename=results&dest_id=$matches[1]&dest_state=$matches[2]&dest_city=$matches[3]', 'results/([^/]+)/([^/]+)/?$' => 'index.php?pagename=results&dest_id=$matches[1]&dest_state=$matches[2]', 'results/([^/]+)/?$' => 'index.php?pagename=results&dest_id=$matches[1]' ); $existing_rules = $new_rules + $existing_rules; return $existing_rules; global $wp_rewrite; $wp_rewrite->flush_rules(); } add_filter('rewrite_rules_array', 'custom_rewrite_rules'); add_filter('query_vars', 'search_services_params'); 

Вышеприведенный код работает достаточно хорошо, но есть огромная проблема с SEO, поскольку он может создавать как неоднозначность, так и массу дублированного контента («dest_id» query_var – это единственное, что я использую, чтобы вытащить зависимый контент на «~ / results» / '), поскольку он действительно полагается только на query_vars и может разрешать такие URL:

  • ~ / Результаты / 123 / нового Йорк / Нью-Йорк-город / Бруклинский /
  • ~ / Результаты / 123 / New-York / бостон / бруклинский /
  • ~ / Результаты / 456 / Массачусетский / бостон / Фенвэй /
  • ~ / Результаты / 456 / Массачусетский / бостон / бруклинский /

Что я хотел бы сделать:

Задайте query_var на моей странице «результаты» для определенного идентификатора cptonomy 2) перепишите этот идентификатор с иерархическими слизнями.

  • ~ / Результаты /? Mycptonomy_id = 123
  • ~ / Результаты /? Mycptonomy_id = 456

  • где 123 – «Нью-Йорк» (slug: new-york) и родительский 456

  • где 456 – это «Нью-Йорк» (слизняк: Нью-Йорк)

Заметьте, я понимаю, что я мог бы поставить «новый-йорк-город» в качестве пули для ребенка, чтобы смутить двусмысленность, но эта двусмысленность в точности совпадает с тем, что многие города в США имеют похожие имена (т.е. / ~ illinois / springfield /, ~ / missouri / springfield)

Учитывая приведенные выше примеры URL-адресов, я хотел бы переписать «mycptonomy_id» следующим образом:

  • ~ / Результаты / нового йорк /
  • ~ / Результаты / нового Йорк / Нью-Йорк /

Кроме того, я хотел бы сохранить дополнительные параметры, такие как:

  • ~ / Результаты / нового йорк /? = Тип кофейня & Herp = Derp
  • ~ / Результаты / нового йорк / нового йорк /? = Тип кофейня & Herp = Derp

(бонусные баллы: я также хотел бы заставить переписать вещи так, чтобы, если бы пользователь получал доступ к ~ / results /? mycptonomy_id = 123, он перенаправлял бы, как и в случае с ~ / page_id = 789, но, скорее всего, сохранит это для другой вопрос, если необходимо)

Огромное спасибо заранее!

Solutions Collecting From Web of "Перепишите query_var, который является term_id с иерархическими слизнями на неархивированных страницах"