Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WordPress硬代码URL结构_Wordpress - Fatal编程技术网

WordPress硬代码URL结构

WordPress硬代码URL结构,wordpress,Wordpress,好的,我正在创建一个WordPress插件,它需要恒定的URL结构。例如,插件有一个要运行的常规cron和一个web钩子,因此我需要以下URL examplesite.com/plugin/webhook/ examplesite.com/plugin/cronjob/ 是否有任何方法可以将其编码到模板中,以便在多个安装过程中这些链接始终相同 谢谢, Chris好的,所以最终得到了一个解决方案,并认为我应该分享它以供将来参考。可以使用generate\u rewrite\u rules创建自定义

好的,我正在创建一个WordPress插件,它需要恒定的URL结构。例如,插件有一个要运行的常规cron和一个web钩子,因此我需要以下URL

examplesite.com/plugin/webhook/ examplesite.com/plugin/cronjob/

是否有任何方法可以将其编码到模板中,以便在多个安装过程中这些链接始终相同

谢谢,
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连接详细信息、类等。必须有一种方法来做到这一点吗?