Для настройки правила перезаписи в WordPress вам необходимо использовать функцию `add_rewrite_rule()`. Данная функция позволяет добавлять свои правила перезаписи (rewrite rules) для интерпретации URL.
Вот как вы можете улучшить указанные аспекты:
1. **Краткость пути:**
Вы можете просто указать шаблон URL относительно корня сайта в `add_rewrite_rule()`, без необходимости включения самого корня сайта. WordPress сам позаботится о преобразовании этого шаблона в полный URL.
2. **Передача GET-параметров:**
При использовании `add_rewrite_rule()`, вы должны указать, к каким внутренним запросам WordPress должен относиться данный шаблон. Для передачи GET-параметров используйте правильные местозаполнители (query vars). После добавления новых правил перезаписи не забудьте сбросить их с помощью функции `flush_rewrite_rules()` или путём обновления постоянных ссылок через админ-панель.
3. **Загрузка WordPress функций:**
Если ваш подключаемый файл должен работать в контексте WordPress и использовать его функциональность, вам не нужно подключать `wp_core.php`. Вместо этого, убедитесь, что ваш файл подключается в рамках WordPress, т.е. он не должен вызываться напрямую через URL. Все WordPress функции автоматически будут доступны, если ваш файл исполняется в экосистеме WordPress (например, через хук).
Пример правила перезаписи:
```php
function custom_rewrite_rule() {
add_rewrite_rule(
'^employee/([0-9]+)/?',
'index.php?pagename=employee&employee_id=$matches[1]',
'top'
);
}
add_action('init', 'custom_rewrite_rule');
// Затем, вы должны добавить 'employee_id' в список разрешённых GET-параметров, чтобы WordPress понимал этот параметр.
function custom_query_vars($vars) {
$vars[] = 'employee_id';
return $vars;
}
add_filter('query_vars', 'custom_query_vars');
// После добавления правил, сбросьте перезапись правил (однократно, например, при активации плагина)
function custom_rewrite_flush() {
custom_rewrite_rule();
flush_rewrite_rules();
}
register_activation_hook(__FILE__, 'custom_rewrite_flush');
```
Также убедитесь, что ваш файл шаблона `employee` правильно обрабатывает получение `employee_id` через объект запроса `$wp_query`, например:
```php
$employee_id = get_query_var('employee_id');
```
Обратите внимание, что частое использование `flush_rewrite_rules()` может замедлить ваш сайт, так как это достаточно ресурсоёмкая операция. Обычно её вызывают только при активации/деактивации плагина.
Не забудьте проверить, работает ли ваша пользовательская страница `employee` и отображается ли она корректно при обращении к URL вида `/employee/123`, где `123` - это `employee_id`.