如何在 Wordpress 中创建(自定义)友好 URL?

问题描述 投票:0回答:2

在Wordpress中,我设置了这样的永久链接结构:

/%category%/%postname%

创建自定义搜索页面后,我现在拥有以下 URL:

http://mypage.com/search?foo1=bar&foo2=&foo3=&foo4=

我有两个问题:

1)我怎样才能转换这个网址,以便我到达例如

http://mypage.com/search/foo1/bar

2)有没有办法删除“未使用”的参数? (

&foo2=&foo3=&foo4=
)

我找到了这篇文章,向我指出了Wordpress中的parse_request函数,以及这篇文章谈论了mod_rewrite。但不太确定如何进行,或者使用什么方法更好。

wordpress friendly-url seo
2个回答
0
投票

您可以使用 wordpress 的

parse_request()
函数或
mod_rewrite
两种方法来转换您的 url,但为了使其正常工作,您必须编写一个函数来捕获请求的 url 并将其转换为原始 url 来服务请求.


0
投票

您可以使用重写规则,

这是一个简单的示例,说明如何注册新的重写规则,并将其传递给 PHP 文件进行渲染:

1。设置规则:

add_action( 'init',  function() {
    add_rewrite_rule( 'myparamname/([a-z0-9-]+)[/]?$', 'index.php?myparamname=$matches[1]', 'top' );
} );

2。刷新永久链接。转至 WP 管理 > 设置 > 固定链接 > 保存。添加此代码后,这不会自动发生

3.将查询参数列入白名单:

add_filter( 'query_vars', function( $query_vars ) {
    $query_vars[] = 'myparamname';
    return $query_vars;
} );

4。添加处理程序以将其发送到模板文件:

add_filter( 'template_include', function( $template ) { if ( get_query_var( 'myparamname' ) == false || get_query_var( 'myparamname' ) == '' ) { 返回$模板; }

return get_template_directory() . '/template-name.php';

});

参见:https://developer.wordpress.org/reference/functions/add_rewrite_rule/#comment-3503

© www.soinside.com 2019 - 2024. All rights reserved.