Intereting Posts
Поле поиска перенаправляется на субдомен Редактор не загружается должным образом на моем самообслуживании WordPress 3.3 как добавить <span> вокруг каждого автора, используя wp_list_authors Ключ action action не будет работать с update_post_meta из формы frontend? Альтернатива? Selectbox в функции панели администратора, связанной с CSS Добавление текстовой ссылки под заголовком сообщения в списках сообщений Нажатие хранимой процедуры в многоузловую базу данных в WordPress Пользовательские сообщения WordPress фильтруются несколькими терминами таксономии Страница параметров Permalink развращает файл web.config WP_Query с различным фильтром postmeta для каждой категории ошибка foreach на false boolean из get_terms AJAX pagination offset возвращает тот же пост на соседних страницах Google Map iframe в выпуске вкладки Как я могу экспортировать данные без использования какого-либо модуля импорта / экспорта Как изменить даты, указанные в виджетах архива?

Перепишите 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 с иерархическими слизнями на неархивированных страницах"