rrozum
@rrozum
Backend-разработчик

Как сделать ссылку на пост блога в виде example.com/blog/%postname%?

Я использую фреймворк pods с помощью которого создал кастомный тип записи blog и кастомную таксономию blog_categories. Передо мной стоит задача сформировать ссылки на записи и категории.
То что я имею сейчас (работает):
  • Ссылка на запись example.com/blog/%blog_categories%/%postname%
  • Ссылка на категорию example.com/blog/%blog_categories%/

То что мне нужно сделать:
  • Ссылка на запись examle.com/blog/%postname%
  • Ссылка на категорию example.com/blog/%category% или хотя бы example.com/blog/category/%category%

Никак не получается настроить второй вариант. Так как %postname% воспринимается как категория и загружает файл шаблона archive-blog.php, а нужен single-blog.php
вот так настроил раздел permalinks:
5d5d30d304da2089922321.png
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
rrozum
@rrozum Автор вопроса
Backend-разработчик
Написал такой код в function.php:
add_filter('request', 'changeRequest');

function changeRequest($query){
	$blogTaxonomy = 'blog_categories';
	$postType = $query['post_type'] ?? '';

	if ($postType === 'blog') {
		if (!empty($query['category'])) {
			$category = get_term_by('slug', $query['category'], $blogTaxonomy);
			if (!$category) {
				$query['name'] = $query['category'];
			}
		}
	}

	return $query;
}

Возможно это не совсем правильное решение, но оно работает. Если у кого-то есть идея как это сделать более правильно, с радостью рассмотрю ее.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы