您可以添加重写规则以映射到其中一个页面,如下所示:
add_action( \'init\', function() {
add_rewrite_rule( \'myparamname/([a-z0-9-]+)[/]?$\', \'index.php?myparamname=$matches[1]\', \'top\' );
} );
的第一个参数
add_rewrite_rule
是与URL匹配的正则表达式。第二个参数是
index.php
非pretty permalink URL,URL参数直接映射到
WP_Query
参数。
如果我们以你的第一页为例collections/collection/example
:
add_action( \'init\', function() {
add_rewrite_rule( \'collections/collection/([a-z0-9-]+)[/]?$\', \'index.php?name=collection&collection_parameter=$matches[1]\', \'top\' );
} );
name=collection
告诉WordPress我们想要有slug的页面
collection
, 和
collection_parameter
是我们传递最终零件值的方式。
然后我们需要允许使用collection_parameter
, 并调整页面模板以使用它,而不是$_GET
要从页面模板中获取值,请执行以下操作:
$collection = get_query_var( \'collection_parameter\' );
要将参数列入白名单,我们需要将其添加到白名单中:
/**
* Register custom query vars
*
* @param array $vars The array of available query variables
*
* @link https://codex.wordpress.org/Plugin_API/Filter_Reference/query_vars
*/
function myplugin_register_query_vars( $vars ) {
$vars[] = \'collection_parameter\';
return $vars;
}
add_filter( \'query_vars\', \'myplugin_register_query_vars\' );
不要忘记刷新重写规则,您可以将其扩展到其他两个页面。