有什么方法让Wordpress知道我输入时: localhost / foo / bar
FOO是一个实际页面(使用我自己的脚本作为模板呈现)和 BAR给出VAR,FOO上显示的所有东西都依赖于 ?
现在,当我输入localhost / foo时,我得到了页面,一切正常。 但是,localhost / foo / bar会产生404错误。
显然,不存在BAR页面。如何将BAR渲染为要呈现为变量的页面?
答案 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
作为变量来显示您喜欢的内容。