第一步是重写规则。我还添加了一个重写标记,以便解析自定义查询变量。您还可以使用query_vars
而是对此进行筛选。
add_action( \'init\', \'tipp_rewrite_rule\' );
function tipp_rewrite_rule() {
add_rewrite_tag( \'%trick_nummer%\', \'([a-zA-Z0-9]+)\' );
add_rewrite_rule(
\'^tipp([a-zA-Z0-9]+)?\',
\'index.php?trick_nummer=$matches[1]\',
\'top\'
);
}
第二步是拦截这些请求、加载帖子和重定向。我们使用
parse_request
操作,它传递一个请求对象,我们可以检查
trick_nummer
查询变量。
然后我们创建一个新的WP_Query
在中查找具有匹配值的帖子trick_nummer
元键,并在找到元键时重定向:
add_action( \'parse_request\', \'wpd_catch_tipp_requests\' );
function wpd_catch_tipp_requests( $query ) {
if( ! is_admin() && isset( $query->query_vars[\'trick_nummer\'] ) ){
$the_post = new WP_Query(
array(
\'meta_key\' => \'trick_nummer\',
\'meta_value\' => $query->query_vars[\'trick_nummer\']
)
);
if( $the_post->have_posts() ){
wp_redirect( get_permalink( $the_post->post->ID ) );
} else {
wp_redirect( home_url() );
}
}
}