function books_theme_parse_request( $query ) {
global $wp;
$current_url = home_url( $wp->request );
if (strpos($current_url, "/book" == false)) { return; }
if(isset($query->query['post_type']) && $query->query['post_type'] == 'book'){
global $wp_query;
$wp_query->set_404();
status_header( 404 );
get_template_part( 404 ); exit();
}
if ( ! $query->is_main_query() || 2 != count( $query->query ) || ! isset( $query->query['page'] ) ) {
return;
}
if ( ! empty( $query->query['name'] ) ) {
$query->set( 'post_type', array( 'post', 'book', 'page' ) );
}
}
add_action( 'pre_get_posts', 'books_theme_parse_request' );
作为一名计算机科学专业的学生,我想知道这个功能是如何运作的。在函数声明中,返回类型是对int的const引用,但是在函数内部我们传递的只是一个int,我读过的大部分介绍书都说返回类型应该与我们返回的匹配,任何人都可以帮助我理解究竟发生了什么?
答案 0 :(得分:1)
在函数声明中,返回类型是对int的const引用,但在函数内部我们传递的只是一个
C ++具有隐式转换,例如:
double function(int n) {
return n;
}
从int到double的隐式转换。
在您的情况下,您有从int到引用的转换。这是正确的并且编译,但在这种情况下,您的变量将被删除"在功能的最后。如果您以后使用它可能会出现问题,这被视为undefined behaviour