Php 如何解决这个问题;未定义索引:post“U类型”;错误?

Php 如何解决这个问题;未定义索引:post“U类型”;错误?,php,wordpress,custom-wordpress-pages,Php,Wordpress,Custom Wordpress Pages,我得到这个错误: 注意:未定义索引:post_键入/opt/bitnami/apps/wordpress/htdocs/wp content/themes/porto child/functions.php 第225行 第225行对应于下面代码中的开关($query->query\u vars['post\u type']): // Set Number of Custom Post Type Displayed Per Page function set_posts_per_page_for

我得到这个错误:

注意:未定义索引:post_键入/opt/bitnami/apps/wordpress/htdocs/wp content/themes/porto child/functions.php 第225行

第225行对应于下面代码中的
开关($query->query\u vars['post\u type'])

// Set Number of Custom Post Type Displayed Per Page

function set_posts_per_page_for_haivision_custom_post_type($query)
{
    switch ( $query->query_vars['post_type'] )
    {
        case 'press_release':  
            $query->query_vars['posts_per_page'] = -1;
            break;

        case 'video_portal':  
            $query->query_vars['posts_per_page'] = -1;
            break;

        default:
            break;
    }
    return $query;
}

if( !is_admin() )
{
    add_filter( 'pre_get_posts', 'set_posts_per_page_for_haivision_custom_post_type' );
}

有人能帮忙吗?

post\u type
在WP查询中并不总是使用,您可以使用检查其存在性的
if
将您的
switch
语句包装起来:

function set_posts_per_page_for_haivision_custom_post_type($query)
{
    if( isset( $query->query_vars['post_type'] ) )
    {
        switch ( $query->query_vars['post_type'] )
        {
            case 'press_release':  
                $query->query_vars['posts_per_page'] = -1;
                break;

            case 'video_portal':  
                $query->query_vars['posts_per_page'] = -1;
                break;

            default:
                break;
        }
    }

    return $query;
}
…但是,
WP\u Query提供了两种方法来访问其变量:前者已经检查您要查找的变量是否存在,因此您不必自己执行:

function set_posts_per_page_for_haivision_custom_post_type($query)
{
    switch ( $query->get('post_type') )
    {
        case 'press_release':  
            $query->set('posts_per_page', -1);
            break;

        case 'video_portal':  
            $query->set('posts_per_page', -1);
            break;

        default:
            break;
    }
    return $query;
}