我正在为 WordPress 编写一个插件,它实际上将是一个单独的排序模块(它将被放置在我正在开发的网站以及其他网站上的 IFRAME 中),但它的管理员与 WordPress 相关联。我没有太多麻烦地编写了管理部分,但是我在前端遇到了麻烦。
首先,我希望可以通过 www.mysite.com/order/ 访问我的脚本,并且根据 WordPress codex,我发现我需要将以下代码放入我的主插件文件中:
add_action('init', 'ta_flush_rewrite_rules');
function ta_flush_rewrite_rules()
{
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
add_action('generate_rewrite_rules', 'ta_add_rewrite_rules');
function ta_add_rewrite_rules( $wp_rewrite ) {
$new_rules = array("order/(.+)" => "/wp-content/plugins/my-plugin/order.php");
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
但它不起作用,我真的不想被 .htaccess 黑客攻击弄脏。
此外,即使这可行,order.php 文件也是与我的插件分开的文件。这意味着我必须包含一些 WordPress 文件才能访问数据库和其他辅助类和函数。这给我们带来了第 2 个问题:URL 有没有办法调用我的插件的函数来呈现订单页面?