要覆盖默认模板,可以使用template_include
钩子,可以这样使用:
add_filter(\'template_include\', \'my_custom_template\');
function my_custom_template($original_template) {
if ($something) {
return include_wordpress_template(get_template_directory() . $my_custom_template);
} else {
return $original_template;
}
}
你可以找到更多关于钩子的信息
here.
UPDATE
要更改检索到的数据,可以使用
pre_get_posts
像这样钩住它:
function my_pre_get_posts($query) {
global $post;
if ($query->is_main_query() && $your_condition) {
$query->set( \'post_type\', \'your_post_type\' );
$query->set( \'p\', $some_special_id );
} else {
return $query;
}
}
add_action( \'pre_get_posts\', \'my_pre_get_posts\' );