Wordpress 使用 URL 参数加载错误的模板
Posted
技术标签:
【中文标题】Wordpress 使用 URL 参数加载错误的模板【英文标题】:Wordpress loads wrong template with URL parameters 【发布时间】:2015-12-16 12:39:05 【问题描述】:我的网站有一个奇怪的问题。这是一个运行了一段时间的 wordpress 网站,我们公司开始了一些 Adwords 活动来增加浏览量。点击时,Google Adwords 会在 URL 中添加一个 gclid 参数,并且该网站正在加载另一个模板(默认帖子模板)而不是主页模板。
我想知道,从哪里开始寻找有缺陷的零件?有什么想法吗?
谢谢!
PS:不只是 gclid 参数这样做,所有其他的假参数也是如此。奇怪的是只有主页这样做,其他具有结构化 URL 的页面没有这样做。该站点使用 Visual Composer 插件,如果它很重要的话。我们尝试通过 .htaccess 文件解决问题,但重定向导致 Google Analytics(分析)跟踪 Adwords 访问者出现错误,因此不是解决方案。
【问题讨论】:
你能分享 URL 示例或你的网站 URL 吗? 您使用的是静态首页还是博客主页?如果是静态主页,您是否使用 front-page.php 文件作为主页模板? 我认为是静态页面,标记为首页。它是用 Visual Composer 插件构建的。在我的主题文件夹中没有 front-page.php 文件。 我有一个关于这个问题的提示——当站点收到一个没有为布局模板预定义变量值的永久链接时,它会使用默认变量值加载默认 page.php。主题不知道页面的哪个布局变量值是正确的,因为主页永久链接是由 wordpress 自己解析的。这可能吗? 【参考方案1】:终于,我们找到了解决办法!
主题缺少主页的 front-page.php 模板(阅读有关 wordpress 模板结构的更多信息!),所以我根据正确的布局变量值使用正确的模板 html 代码创建了它,它加载得很好。 URL 参数不再影响永久链接结构,因为现在我们也有了主页模板。
这比花费数小时研究重定向或永久链接方法解决方法要好...
【讨论】:
谢谢!这成功了!我只是将 page.php 复制到了 front-page.php 并且它起作用了。【参考方案2】:如果一切都失败了,请使用 template_redirect 钩子来加载你想要的任何模板...template_redirect hook
如果您只是加载文件并退出,您还必须在那里发送一个 200 OK 标头。
【讨论】:
以上是关于Wordpress 使用 URL 参数加载错误的模板的主要内容,如果未能解决你的问题,请参考以下文章
在我的 URL 末尾添加 /?name=someonesname 时出现 Wordpress 404 错误
在 WordPress 3.4 中使用 POST / GET 参数时出现 404
在wordpress中用data-url延迟加载替换所有src