WordPress硬代码URL结构
好的,我正在创建一个WordPress插件,它需要恒定的URL结构。例如,插件有一个要运行的常规cron和一个web钩子,因此我需要以下URL examplesite.com/plugin/webhook/ examplesite.com/plugin/cronjob/ 是否有任何方法可以将其编码到模板中,以便在多个安装过程中这些链接始终相同 谢谢,WordPress硬代码URL结构,wordpress,Wordpress,好的,我正在创建一个WordPress插件,它需要恒定的URL结构。例如,插件有一个要运行的常规cron和一个web钩子,因此我需要以下URL examplesite.com/plugin/webhook/ examplesite.com/plugin/cronjob/ 是否有任何方法可以将其编码到模板中,以便在多个安装过程中这些链接始终相同 谢谢, Chris好的,所以最终得到了一个解决方案,并认为我应该分享它以供将来参考。可以使用generate\u rewrite\u rules创建自定义
Chris好的,所以最终得到了一个解决方案,并认为我应该分享它以供将来参考。可以使用
generate\u rewrite\u rules
创建自定义重写规则
为了实现这一点,我创建了引用方法的操作
add\u操作('generate\u rewrite\u rules'、'plugin\u generate\u rewrite\u rules')
插件方法是-
function plugin_generate_rewrite_rules($wp_rewrite) {
// create plugin rewrite rules
$rewrite_rules = array (
'PLUGIN_NAME/cronjob/' => 'wp-content/plugins/PLUGIN_NAME/cronjob.php',
'PLUGIN_NAME/webhook/' => 'wp-content/plugins/PLUGIN_NAME/webhook.php',
);
// apply new rewrite rules
$wp_rewrite->non_wp_rules += $rewrite_rules;
}
除了需要刷新重写规则以应用这些更改之外,这将起作用。这可以通过在插件激活时添加WordPress来创建
function plugin_activate() {
// flush rewrite rules
global $wp_rewrite;
$wp_rewrite->flush();
}
register_activation_hook( __FILE__, 'plugin_activate' );
我希望这能帮助一些人 我不这么认为,因为如果某人的WP安装在
example.com/blog/plugin/…
或blog.example.com/plugin/…
上,会发生什么呢?插件也安装在安装文件夹/WP-content/plugins/PLUGINNAME
@Howlin是的,我明白你的意思,但我只是想知道它可以安装在哪里查找文件,无论安装位置如何。因此,如果它是/blog/plugin/webhook/那么WordPress会意识到这一点,并阻止以这个名称创建物理页面。也许是一个更好的例子。。我有一个Stockister locator小部件,每次我都想将该表单发布到某个位置。所有提交的内容都应该转到WPINSTALLURL/stockist search/例如,结果将显示在那里。仅考虑直接访问URL,我不能这样做,因为我想加载所有适当的WordPress连接详细信息、类等。必须有一种方法来做到这一点吗?