Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.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
Php 插件中子页面的wordpress url解析_Php_Wordpress_Url_Plugins - Fatal编程技术网

Php 插件中子页面的wordpress url解析

Php 插件中子页面的wordpress url解析,php,wordpress,url,plugins,Php,Wordpress,Url,Plugins,假设我在wordpress中有一个页面foo,这样http:/www.blah.com/foo就会显示出来 假设这个页面的内容中有一个触发器,比如我的插件通过add_filter“the_content”跟踪它。。滤器因此,所有对http:www.blah.com/foo的调用都由插件接收并处理 现在有没有一种方法可以让插件让wordpress知道它想要处理该类型的所有URL等。。 不必为每个URL创建页面/子页面,因为这些URL将动态创建 此外,除了在页面中的内容上使用添加内容过滤器外,还有其

假设我在wordpress中有一个页面foo,这样http:/www.blah.com/foo就会显示出来

假设这个页面的内容中有一个触发器,比如我的插件通过add_filter“the_content”跟踪它。。滤器因此,所有对http:www.blah.com/foo的调用都由插件接收并处理

现在有没有一种方法可以让插件让wordpress知道它想要处理该类型的所有URL等。。 不必为每个URL创建页面/子页面,因为这些URL将动态创建


此外,除了在页面中的内容上使用添加内容过滤器外,还有其他方法吗?可以从插件中获取控制权(理想情况下,该插件设置了url的键),以便所有对的调用都由插件处理。

是的,您可以获取url引用,即查询并解析它们,而无需创建子页面


事件顺序如中所述。您需要特别关注连接到parse_请求操作。

我做了一些非常类似于您使用自定义mod_重写规则描述的事情。按照您的示例,我有一个使用Foo.php模板的页面Foo。php模板接受一个查询变量,比如path,它定义URL的其余部分。在我的.htaccess文件中,我有以下规则:小心将其放在WordPress“自动生成的规则”之外

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^foo/(.+) /foo/?path=$1 [L] 
</IfModule>
我认为使用钩子和类也可以做类似的事情,但我自己还没有尝试过

回答我自己的问题:

上面答案中的指针很有用,让我走上了正确的道路,但我一直遇到一个障碍,即每当调用所讨论的url时,它总是调用index.php

然后我遇到了 他解释并提供了一个需要模板重定向操作的答案,以确保控件位于您想要的位置

remove_action('template_redirect', 'redirect_canonical');