ds_rewrite_rule()

Добавляет правило перезаписи 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.: Функция еще находится в доработке..