@LionG

Как указать WP что такая страница существует/создать правило ЧПУ?

Есть сайт site.ru, есть бд с кучей записей и переменных (допустим ключевая колонка link).
Есть некий обработчик который в зависимости от аргумента в url site.ru/*link*/ выводит разные записи на странице,
беда в том что он работает только на заранее созданных в wp страницах.

Те. если использовать site.ru/страница/*link*/ с заранее созданной в самом WP site.ru/страница/ странице то все работает, если *link*=test и заранее создать site.ru/test/ то тоже работает.

А как сделать что бы WP не выдавал 404 без ручного добавления страницы для каждой записи в бд ? Как так прописать ЧПУ WP что бы он понимал что такая страница существует ? Может какой фильтр существует где WP спрашивает "У себя я такой страницы не нашел, показываем 404 или контент... ?"
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ответы на вопрос 1
Immortal_pony
@Immortal_pony
Вы можете управлять rewrite_rules. Примерно так:

add_filter("query_vars", function($vars) { 
    array_push($vars, "handler");
    return $vars;
});

add_filter("rewrite_rules_array", function($rules) { 
    $newrules['custom/([0-9a-z-]{1,128})'] = 'index.php?pagename=custom&handler=$matches[1]';
    return $newrules + $rules;
});

add_action("wp_loaded", function() { 	
	global $wp_rewrite;    
	$wp_rewrite->flush_rules();
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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