我有wordpress自定义模板页面test.php,其中我想通过url传递变量,
http://localhost/wordpress/test?date=2017&postid=11&title=some-title
采用这种格式,
http://localhost/wordpress/test/2017/11/some-title
并从网址中获取参数。
我已遵循此link,但无法按照我的意愿生成结果。
有没有其他方法可以达到我所提到的所需结果?我是wordpress主题开发的新手。
答案 0 :(得分:2)
好吧,正如@ vl4d1m1r4所建议的那样,我使用了Web服务器(在我的情况下是apache)重写规则来重写路径。一些 - 我已经取得了预期的结果。 在function.php中 我编写了以下代码来更新wordpress(.htaccess)中的重写规则
add_filter( 'query_vars', 'add_custom_query_vars' );
function add_custom_query_vars( $vars )
{
array_push($vars, "test_year", "test_postid", "test_title");
return $vars;
}
function custom_rewrite_rule()
{
add_rewrite_rule('^test/([^/]*)/([^/]*)/([^/]*)?','index.php?pagename=test&test_year=$matches[1]&test_postid=$matches[2]&test_title=$matches[3]','top');
}
add_action('init', 'custom_rewrite_rule');
添加上述代码后,我重新保存了永久链接设置(设置>>固定链接)
获取custom-template-page中的参数,即test.php。我使用了以下查询。
echo get_query_var('test_title');
echo get_query_var('test_postid');
echo get_query_var('test_year');