Итак, у меня есть сайт с примерно 6 пользовательскими типами сообщений. Три из этих типов сообщений привязаны к единой пользовательской таксономии.Одиночная таксономия, привязанная к нескольким типам сообщений. Вопрос
Я хотел бы иметь возможность в тегу list_cats боковой панели и выплюнуть URL, как ../%post_type%/%taxonomy%/ и иметь это вас к taxonomy-% систематики% .php шаблон и возвращать только результаты % post_type%.
я могу создать условный, которая будет читать текущую % post_type% и стиль правильно один раз в taxonomy-% таксономия% .php файла. Мне нужно какое-то направление по наиболее эффективному методу изменения URL-адреса, чтобы передать запрос % post_type%.
Заранее спасибо. Я искал пару дней без четкого ответа.
Так вот мои слабые попытки решения пока они один большой СБОЙ Это базируется обсуждение найденного на rlmseo.com муравья ответа здесь.
Попытка добавить тип записи переменной для использования в запросе:
тренировочные площадки является таксономия. Попытка добавить переменный, которую можно использовать для фильтрации таксономии по типу записи в систематике-практика-areas.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')
ли $ матчи [1] должны быть числом? – jroakes
Нет - мое регулярное выражение (ржавое выражение) является ржавым, но я думаю, что он также возьмет строку. – Gavin
Мне не удалось заставить это работать после многих попыток использования этого кода. Я попробовал аналогичный метод с rlmseo.com с теми же результатами. Пожалуйста, взгляните на мой пересмотренный пост, когда вы получите мгновение. – jroakes