从概念上讲,我想做的事情非常简单。在我的插件中,我想向我的wordpress站点添加一个路径/路由:
[mysiteurl]/testpath
。。。加载特定文件,如:
[filepath-to-my-plugin]/testfile.html
我玩过wp rewrite、flush\\u rules、add\\u filter(\'rewrite\\u rules\\u array\',xxx),但我得到的只是让站点接受路径,但显示主页。
很明显,我错过了一些非常简单的东西,但我已经在google上搜索了一段时间,没有找到我需要的东西。有什么想法吗?
SO网友:ChrisNY
这个想法就是通过编程在WordPress站点的插件中创建路径/url(比如,“[我的网站]/我的路径”),然后加载任意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;
}
参考文献:
This answer about creating custom pages in a plugin. 谢谢
fuxia.