하나는 캐치의 index.php입니다
https://www.qsleap.com/gmat/resources 같은 사용자 정의 URL로합니다. 요청 필터가 요청을 포착하고 페이지를 호출합니다.
이 코드를 읽어 보면 도움이 될 것입니다.
function permalinks_customizer_request_before($query){
$uri=$_SERVER['REQUEST_URI'];
$match= preg_match('/(gmat|gre|sat|lsat|cat)(\/resources\/tags\/)
(.*)\/(articles|videos|concept-notes|qna)/', $uri,$matches);
//$match=
preg_match('/(gmat|gre|sat|lsat|cat)/\resources/\tags/stanford-
gsb/\articles|videos|concept-notes)/?$', $uri,$matches);
if($match){
$url = parse_url(get_bloginfo('url'));
$url = isset($url['path']) ? $url['path'] : '';
$request = ltrim(substr($_SERVER['REQUEST_URI'], strlen($url)), '/');
$request = (($pos = strpos($request, '?')) ? substr($request, 0, $pos) : $request);
if (! $request)
return $query;
$original_url="?page_name=tags&exam=".$matches[1]."&post_tag=".$matches[3]."&post_type=".$matches[4];
if ($original_url !== null) {
$original_url = str_replace('//', '/', $original_url);
if (($pos = strpos($_SERVER['REQUEST_URI'], '?')) !== false) {
$queryVars = substr($_SERVER['REQUEST_URI'], $pos + 1);
$original_url .= (strpos($original_url, '?') === false ? '?' : '&') . $queryVars;
}
$oldRequestUri = $_SERVER['REQUEST_URI'];
$oldQueryString = $_SERVER['QUERY_STRING'];
$_SERVER['REQUEST_URI'] = '/' . ltrim($original_url, '/');
$_SERVER['QUERY_STRING'] = (($pos = strpos($original_url, '?')) !== false ? substr($original_url, $pos + 1) : '');
parse_str($_SERVER['QUERY_STRING'], $queryArray);
$oldValues = array();
global $wp;
$wp->parse_request();
$query = $wp->query_vars;
if (is_array($queryArray)) {
foreach ($queryArray as $key => $value) {
$oldValues[$key] = $_REQUEST[$key];
$_REQUEST[$key] = $_GET[$key] = $value;
$query[$key]=$value;
}
}
$_SERVER['REQUEST_URI'] ='';
$_SERVER['QUERY_STRING']='';
}
}
return $query;
}
add_filter('request','permalinks_customizer_request_before',0);
function wp_url_rewrite_templates() {
if (get_query_var('page_name') && get_query_var('page_name'
)=='tags') {
add_filter('template_include', function() {
$template= dirname(__FILE__) . '/page-tags.php';
return $template;
});
}
}
add_action('template_redirect', 'wp_url_rewrite_templates' ,4);
정확히 무엇이 문제입니까? 질문이 그렇게 명확하지 않습니다. –
정규 PHP와 마찬가지로 코드의 아무 곳이나 리디렉션을 지정할 수 있습니다 – JoshKisb