Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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_Url_Plugins_Rewrite - Fatal编程技术网

WordPress重写URL以访问插件页面

WordPress重写URL以访问插件页面,wordpress,url,plugins,rewrite,Wordpress,Url,Plugins,Rewrite,您好,我试图通过自定义URL访问我的插件,但我无法使插件重定向,它只是出现404页未找到,而我想要的是调用page.php。我的插件代码如下(激活和停用插件功能): 你知道我做错了什么吗 提前感谢, Chris不重定向到Wordpress index.php文件的重写规则将写入.htaccess文件。我认为它们从未存储在数据库中。因此,看看你的代码,如果你的.htaccess文件在插件激活时不可写,那么你的重写规则永远不会被添加 正如Amereservant编写的,您需要在init(或者gen

您好,我试图通过自定义URL访问我的插件,但我无法使插件重定向,它只是出现404页未找到,而我想要的是调用page.php。我的插件代码如下(激活和停用插件功能):

你知道我做错了什么吗

提前感谢,


Chris

不重定向到Wordpress index.php文件的重写规则将写入.htaccess文件。我认为它们从未存储在数据库中。因此,看看你的代码,如果你的.htaccess文件在插件激活时不可写,那么你的重写规则永远不会被添加



正如Amereservant编写的,您需要在
init
(或者
generate\u rewrite\u rules
)操作中添加您的重写规则,否则它将在刷新规则时被删除(因为如上所述,规则未存储在数据库中).

不重定向到Wordpress index.php文件的重写规则将写入.htaccess文件。我认为它们从未存储在数据库中。因此,看看你的代码,如果你的.htaccess文件在插件激活时不可写,那么你的重写规则永远不会被添加



正如Ameservant编写的,您需要在
init
(或者
generate\u rewrite\u rules
)操作中添加您的重写规则,否则它将在刷新规则时被删除(因为如上所述,规则未存储在数据库中)。

首先,以这种方式给出路径是个坏主意,因为如果出于任何原因发生任何更改,您的插件/主题将中断。
Ozh在这一节下提出了一个很好的建议,就这些建议而言

其次,使用*query\u vars*可能会更好。请看一看,甚至可能看一看如何做到这一点的例子

另外,请检查,因为它提供了在WordPress中处理URL重写的最佳信息

第三,您需要将
setRewriteRules()
函数挂钩到init挂钩,因为第一次刷新规则时,您的规则将被删除

因此,您的代码看起来像这样(没有任何其他更正):



重写规则刷新 下面是一些刷新重写规则的提示

  • 只要您访问设置>永久链接或在管理区域中进行更改并保存更改,就会自动刷新重写规则
  • 添加
    add_操作('admin_init','deactivate')
    可能也很有用,因此在加载管理页面时,它们会被刷新

首先,以这种方式给出路径是个坏主意,因为如果由于任何原因发生任何更改,您的插件/主题就会中断。
Ozh在这一节下提出了一个很好的建议,就这些建议而言

其次,使用*query\u vars*可能会更好。请看一看,甚至可能看一看如何做到这一点的例子

另外,请检查,因为它提供了在WordPress中处理URL重写的最佳信息

第三,您需要将
setRewriteRules()
函数挂钩到init挂钩,因为第一次刷新规则时,您的规则将被删除

因此,您的代码看起来像这样(没有任何其他更正):



重写规则刷新 下面是一些刷新重写规则的提示

  • 只要您访问设置>永久链接或在管理区域中进行更改并保存更改,就会自动刷新重写规则
  • 添加
    add_操作('admin_init','deactivate')
    可能也很有用,因此在加载管理页面时,它们会被刷新
register_activation_hook(__FILE__,'activate');
register_deactivation_hook(__FILE__,'deactivate');

function setRewriteRules()
{
    add_rewrite_rule( 'plugin-url/$', '/wp-content/plugins/my-plugin/page.php', 'top' );
}

function activate() 
{       
    setRewriteRules();

    global $wp_rewrite;
    $wp_rewrite->flush_rules(true);  

}

function deactivate()
{
    global $wp_rewrite;
    $wp_rewrite->flush_rules(true);  
}
register_activation_hook(__FILE__,'activate');
register_deactivation_hook(__FILE__,'deactivate');
add_action('init', 'setRewriteRules');

function setRewriteRules()
{
    add_rewrite_rule( 'plugin-url/$', '/wp-content/plugins/my-plugin/page.php', 'top' );
}

function activate() 
{       
    setRewriteRules();

    global $wp_rewrite;
    $wp_rewrite->flush_rules(true);  

}

function deactivate()
{
    global $wp_rewrite;
    $wp_rewrite->flush_rules(true);  
}