将自定义URL段添加到wordpress页面

时间:2015-03-14 16:53:53

标签: php wordpress

我正在尝试允许我的页面接收查询变量,但要将其重写为好的永久链接。所以我想要这个

example.com/wordpress-page/random

所以我不希望random成为子页面或类似的东西,因为它来自外部服务。为此,我已将此代码添加到functions.php

function add_my_var($public_query_vars) {
    $public_query_vars[] = 'my_var';
    return $public_query_vars;
}

add_filter('query_vars', 'add_my_var');

function do_rewrite() {
    add_rewrite_rule('wordpress-page/([^/]+)/?$', 'index.php?name=wordpress-page&my_var=$matches[1]','top');
}

add_action('init', 'do_rewrite');

当我转到example.com/wordpress-page时,我会看到我的页面,但当我转到example.com/wordpress-page/random时,我会收到404页面。

我通过在wp-admin面板中保存永久链接来刷新重写规则。

我哪里出错了?

1 个答案:

答案 0 :(得分:0)

我发现我需要调用flush_rewrite_rules()函数。除了上面已经演示的query_vars动作挂钩和add_rewrite_rule()功能外,还完成了这项工作。

在我的情况下,我选择使用switch_theme动作挂钩将其放入我的主题的functions.php中,并停用/重新激活我的主题。但是你可以把它放在别处,只要它在某个时刻被称为一次(所以可能不是'init')

add_action('switch_theme', 'mytheme_setup_options');

function mytheme_setup_options () {
    flush_rewrite_rules();
}