Добавляет правило перезаписи URL с возможностью подключения php файла или callback функции.
ds_rewrite_rule($regex, $callback, $query);
$regex — Регулярное выражение для URL https://site.ru/$RegExp
$callback — Название callback функции или полный путь до php файла.
$query — Параметры найденные в регулярном выражении
Функцию рекомендуется вызывать, на событии ds_init
Применяется в плагинах и functions.php темы.
Пример c callback функцией
add_event('ds_init', 'main_callback_func');
function main_callback_func() {
ds_rewrite_rule('test\/?', 'ds_test_parse_request');
}
function ds_test_parse_request() {
get_header();
echo 'TEST';
get_footer();
}
Пример c подключением файла
/**
* Допустим у нас есть файл в нашем плагине
* путь до которого ./sys/plugins/test/cool.php
*/
add_event('ds_init', 'main_callback_func');
function main_callback_func() {
ds_rewrite_rule('test\/?', ROOTPATH . '/sys/plugins/test/cool.php');
}
Оба варианта будут иметь ссылку https://site.ru/test/
Пример более сложный
add_event('ds_init', function() {
ds_rewrite_rule('test\/?', 'test_func');
ds_rewrite_rule('test\/([0-9]+)\/?', 'test_func', 'id=$1');
});
function test_func() {
$get = ds_get('route_request');
var_dump($get);
}
Тут мы уже можем задавать динамические урлы, по типу:
https://site.ru/test/
https://site.ru/test/123/
var_dump($get);
// array('id' => 123)
Ps.: Функция еще находится в доработке..