如何在WordPress中为类别页面查询创建漂亮的URL?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在WordPress中为类别页面查询创建漂亮的URL?相关的知识,希望对你有一定的参考价值。

我正在尝试将类别链接从查询转换为Pretty URL。

例如,我有“ALASKA”类别。它的URL是https://www.mywebsite.com/category/alaska/

我使用以下链接从网址获得一些查询:https://www.mywebsite.com/category/alaska/?subscriber=1

我想将此URL转换为Pretty URL(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。有什么办法吗?所以我可以显示不同类别的不同数据。

答案
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版本。

另一答案

我不确定WordPress,你正在寻找的是使用.htaccessApache配置重写URL。

另一答案

您可以使用.htaccess使链接SEO友好

RewriteRule ^category/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$  category/$1/?subscriber=$2  [NC,L]

然后你可以使用$ _GET ['subscriber']检索你的var用户值

以上是关于如何在WordPress中为类别页面查询创建漂亮的URL?的主要内容,如果未能解决你的问题,请参考以下文章

如何让分页在 WordPress 中为 get_posts() 工作?

如何在子类别页面中显示 Wordpress 类别?

WordPress:如何将类别页面标题更改为仅类别名称?

是否可以在 WordPress 中为页面请求打印所有数据库查询的日志?

在 Doc Root 中为 Wordpress 创建自定义 PHP 页面 [重复]

使用Twig和WordPress查询类别帖子