실제로 수행하려고 시도하는 내용이 명확하지 않지만 /wp-includes/template-loader.php가 특히 중요 할 것입니다.
템플릿을로드하는 파일입니다. 그냥 분명히하기 위해이 파일을 수정하라는 말은 아니에요. 나는 단지 마법이 일어나는 곳을 지적하고 있습니다.
로드되면 즉시 template_redirect
액션이 실행됩니다. 로직을 수행하고 싶다면 여기서 리디렉션하십시오.
$template = false;
if (is_404() && $template = get_404_template() ) :
elseif (is_search() && $template = get_search_template() ) :
elseif (is_front_page() && $template = get_front_page_template() ) :
elseif (is_home() && $template = get_home_template() ) :
elseif (is_post_type_archive() && $template = get_post_type_archive_template()) :
elseif (is_tax() && $template = get_taxonomy_template() ) :
elseif (is_attachment() && $template = get_attachment_template() ) :
remove_filter('the_content', 'prepend_attachment');
elseif (is_single() && $template = get_single_template() ) :
elseif (is_page() && $template = get_page_template() ) :
elseif (is_category() && $template = get_category_template() ) :
elseif (is_tag() && $template = get_tag_template() ) :
elseif (is_author() && $template = get_author_template() ) :
elseif (is_date() && $template = get_date_template() ) :
elseif (is_archive() && $template = get_archive_template() ) :
elseif (is_comments_popup() && $template = get_comments_popup_template()) :
elseif (is_paged() && $template = get_paged_template() ) :
else :
$template = get_index_template();
endif;
/**
* Filter the path of the current template before including it.
*
* @since 3.0.0
*
* @param string $template The path of the template to include.
*/
if ($template = apply_filters('template_include', $template))
include($template);
return;
: 템플릿 파일이 결정 조건문가이 파일의 맨 아래에
function wpse_template_redirect() {
if (condition_a() == condition_b()) {
wp_redirect('url-to-redirect-to');
exit;
}
}
add_action('template_redirect', 'wpse_template_redirect');
: 여기 테마의 functions.php에 갈 것이라고 예입니다