我正在尝试将类别链接从查询转换为Pretty URL。
例如,我有“ALASKA”类别。
它的网址是https://www.mywebsite.com/category/alaska/
我使用以下链接从网址获取一些查询:
https://www.mywebsite.com/category/alaska/?subscriber=1
我想将此网址转换为漂亮网址(https://www.mywebsite.com/category/alaska/subscriber/
),并希望为其显示自定义模板。
我试过这段代码:
尝试1
function my_template() {
if ( is_archive() ) {
if ( isset( $_REQUEST['subscriber'] ) ) {
$myurl = get_category_link();
if (substr($myurl) != "/") $myurl .= "/";
$myurl .= "subscriber/";
$myurl .= trim( sanitize_title_for_query( $_REQUEST['subscriber'] ) ) . "/";
exit( wp_redirect( $myurl ) ) ;
}
}
}
add_action( 'template_redirect', 'my_template_redirect' );
以上代码对我不起作用。
我对WordPress中的URL重写知之甚少。
请帮帮我。
更新
尝试2:
如comment by Oussama中所述 我想出了这段代码:
function wallpaperinho_subcat_rewrite_rule() {
add_rewrite_rule('^category/([^/]*)/subscriber/?','index.php?page_id=305965&subscriber=1','top');
}
add_action('init', 'wallpaperinho_subcat_rewrite_rule', 10, 0);
上述功能有效,但我无法在自定义页面和功能中检测当前类别ID。有什么办法吗?所以我可以显示不同类别的不同数据。
答案 0 :(得分:0)
url = "https://www.mywebsite.com/category/alaska/?subscriber=1"
pretty = ""
for char in url: ## Loop through every letter in the 'ugly' URL
if char in "abcedfghijklmnopqrstuvwxyz./:": ## If the character is allowed
pretty += char ## Add it to the Pretty URL
编辑:刚才意识到你的代码是用PHP编写的......这段代码是用Python编写的:( ...我正在使用PHP版本。
答案 1 :(得分:0)
我不确定WordPress,您正在寻找的是使用.htaccess
或Apache
配置进行网址重写。
答案 2 :(得分:0)
您可以使用.htaccess
使链接SEO友好RewriteRule ^category/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ category/$1/?subscriber=$2 [NC,L]
然后您可以使用$ _GET [' subscriber']
检索您的var订阅者值