WP网址:localhost / page / variable

时间:2016-07-02 12:20:48

标签: php wordpress

有什么方法让Wordpress知道我输入时: localhost / foo / bar

FOO是一个实际页面(使用我自己的脚本作为模板呈现)和 BAR给出VAR,FOO上显示的所有东西都依赖于 ?

现在,当我输入localhost / foo时,我得到了页面,一切正常。 但是,localhost / foo / bar会产生404错误。

显然,不存在BAR页面。如何将BAR渲染为要呈现为变量的页面?

1 个答案:

答案 0 :(得分:1)

以下是我解决问题的方法:

functions.php文件中,您应添加以下代码:

add_action( 'init', 'custom_rewrite_rules' );
function custom_rewrite_rules() {
    add_rewrite_rule(
        '^(katalog)/([^/]+)/?$',
        'index.php?pagename=$matches[1]&bar_variable_name=$matches[2]',
        'top'
    );
}

add_action( 'init', 'custom_rewrite_tags');
function custom_rewrite_tags() {
    add_rewrite_tag( '%bar_variable_name%', '([^/]+)' );
}

注意 :在上面的代码中,我将bar变量命名为bar_variable_name。如果您愿意,可以将变量名称替换为更符合您需求的名称。

注意#2 :如果您需要将页面重命名为其他内容,请将katalog替换为新版本的slug页。

完成后,您应该进入WordPress仪表板,在“设置/永久链接”中,然后保存您使用的当前设置。这样你就可以刷新WordPress的ReWrite规则。

然后在您的主题文件夹中,创建模板页面或在page.php文件中并执行以下测试以检查您是否在与bar一起的页面中,以及{{1}值:

bar

注意 :如果您替换了预览代码块中的global $wp_query; if ( isset( $wp_query->query ) && key_exists( 'bar_variable_name', $wp_query->query ) && ! empty( $wp_query->query['bar_variable_name'] ) ) { $image_path = $wp_query->query['bar_variable_name']; echo "This is my folder name : " . $image_path; die(); } ,请通过替换{{1}更新此代码这里也是。

如果一切顺利,当您访问网址中有一个额外细分的bar_variable_name页面时,您应该会在页面中看到细分字符串。

即:如果您访问页面/ katalog / beers /输出,则应为:bar_variable_name

如果这样做符合您的需要,那么您可以在自定义页面中使用katalog作为变量来显示您喜欢的内容。