Итак, у меня есть сайт с примерно 6 пользовательскими типами сообщений. Три из этих типов сообщений привязаны к одной пользовательской таксономии.
Я хотел бы иметь возможность составить list_cats на боковой панели и выдавать URL-адрес, например .. /% post_type% /% taxonomy% / , и заставить вас перейти к таксономия-% таксономия% .php шаблона и возвращает только результаты % post_type% .
Я могу создать условное выражение, которое будет считывать текущий % post_type% и один раз правильно стилизовать его в файле taxonomy-% taxonomy% .php .Мне нужно руководство по наиболее эффективному способу изменения URL-адреса для передачи % post_type% в запрос.
Заранее спасибо.Я искал пару дней без четкого ответа.
Итак, вот мои слабые попытки найти решение, но они являются одной большой ошибкой Это основано на обсуждении, найденном в rlmseo.com и ответ здесь.
Попытка добавить тип записи в переменную для использования в Запросе:
практикаэто таксономия.Попытка добавить переменную, которую я могу использовать для фильтрации таксономии по типу записи в taxonomy-practice-Area.php
function add_query_vars($aVars) {
$aVars[] = "cust_pt_var"; // represents the name of the custom post type as shown in the URL
return $aVars;
}
// hook add_query_vars function into query_vars
add_filter('query_vars', 'add_query_vars');
function add_rewrite_rules($aRules) {
$aNewRules = array('practice-areas/([^/]+)/pt/([^/]+)/?$' => 'index.php?practice-areas=$matches[1]&cust_pt_var=$matches[2]');
$aRules = $aNewRules + $aRules;
return $aRules;
}
// hook add_rewrite_rules function into rewrite_rules_array
add_filter('rewrite_rules_array', 'add_rewrite_rules')
Попытка передать переменные запроса в перезаписи
Попытка добавить типы запросов (портфолио и клиенты), а также термин таксономии практических областей в запрос при перезаписи.
function add_rewrite_rules($aRules) {
$aNewRules = array('portfolio/practice-areas/([^/]+)/?$' => 'index.php?post_type=portfolio&practice-areas=$matches[1]');
$aNewRules = array('clients/practice-areas/([^/]+)/?$' => 'index.php?post_type=clients&practice-areas=$matches[1]');
$aRules = $aNewRules + $aRules;
return $aRules;
}
// hook add_rewrite_rules function into rewrite_rules_array
add_filter('rewrite_rules_array', 'add_rewrite_rules')