Концептуально то, что я хочу сделать, очень просто. В моем плагине я хочу добавить один путь / маршрут к моему сайту wordpress:
[mysiteurl]/testpath
… который загружает определенный файл, например:
[filepath-to-my-plugin]/testfile.html
Я играл с wp-rewrite, flush_rules, add_filter ('rewrite_rules_array', xxx), но все, что я получил, было для того, чтобы сайт принял путь, но отобразил главную страницу.
Ясно, что я пропустил что-то очень простое, но я искал какое-то время, не найдя, что мне нужно. Есть идеи?
Идея состоит в том, чтобы программно создать путь / url в плагине для сайта WordPress (например, «[mysite] / mypath»), а затем загрузить произвольный файл html или php. Если кто-то ищет что-то подобное, это работает для меня (в моем основном файле функций плагина):
register_activation_hook(__FILE__, 'myplugin_activate'); function myplugin_activate () { create_custom_page('mytestpath'); } function create_custom_page($page_name) { $pageExists = false; $pages = get_pages(); foreach ($pages as $page) { if ($page->post_name == $page_name) { $pageExists = true; break; } } if (!$pageExists) { wp_insert_post ([ 'post_type' =>'page', 'post_name' => $page_name, 'post_status' => 'publish', ]); } } // End Plugin Activation //Start Catching URL add_filter( 'page_template', 'catch_mypath' ); function catch_mypath( $page_template ) { if ( is_page( 'mytestpath' ) ) { $page_template = __DIR__.'/mypage.html'; } return $page_template; }