您可以添加重写规则以映射到其中一个页面,如下所示:
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\' );
不要忘记刷新重写规则,您可以将其扩展到其他两个页面。