当页面不存在时,WordPress将url传递给页面模板

时间:2019-02-24 作者:jdias

我创建了一个页面模板来动态地提供信息。

对于类似url的

实例com/汉普顿=>指数。php?page\\u id=92(&U);过滤器=汉普顿

对于类似url的

实例存在的com/页面<;-显示页面

基本上,如果url指向存在的页面,则显示该页面。如果页面不存在,请将/之后的所有内容传递给变量“filter”中的页面模板。

我在函数中添加了以下内容。我的孩子主题中的php。

function add_query_vars($aVars) {
    $aVars[] = "filter";
    return $aVars;
}

// hook add_query_vars function into query_vars
add_filter(\'query_vars\', \'add_query_vars\');
以及

function add_rewrite_rules($aRules) {
    $aNewRules = array(\'/([^/]+)/?$\' => \'index.php?page_id=92&filter=matches[1]\');
    $aRules = $aNewRules + $aRules;
    return $aRules;
}

// hook add_rewrite_rules function into rewrite_rules_array
add_filter(\'rewrite_rules_array\', \'add_rewrite_rules\');
当我键入一个不存在的url时,我得到一个找不到的页面。

如果键入存在的url,则会在该url中显示正确的页面。

谢谢你的帮助。

2 个回复
SO网友:Jarrod W.

您将得到一个“未找到页面”,因为它正是未找到的页面。

您可以做的是创建一个名为“locations”的页面,然后按如下方式进行设置

实例com/位置/汉普顿=>索引。php?第\\u页id=[第\\u页,共\\u个位置]&;过滤器=汉普顿

SO网友:Brada

我建议不要把事情过于复杂化,这是一项更复杂的任务。

WordPress会将所有不存在的页面重定向到404。php文件。

从这里开始,最方便的事情就是制作一个标题为“Ups,你迷路了”的页面然后,可能会给出一些页面/帖子/您想提供的内容的示例,用户可能会感兴趣并跳转到这些页面/帖子/您想提供的内容。

对我来说,动态创建一个不存在的页面听起来不是一个好主意,但也许我错了,你有充分的理由。。。只是我的意见。

https://codex.wordpress.org/Creating_an_Error_404_Page

相关推荐