微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何修复此“未定义索引:post_type”错误?

如何解决如何修复此“未定义索引:post_type”错误?

我收到此错误

注意:未定义索引:/opt/bitnami/apps/wordpress/htdocs/wp-content/themes/porto-child/functions.PHP中的post_type 在线 225

第 225 行对应于以下代码中的 switch ( $query->query_vars['post_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_type 并不总是在 WP 查询中使用,您可以用检查其存在的 switch 包装您的 if 语句:

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_Query 提供了 2 种方法来访问它的变量:getset,前者已经检查了你所访问的变量是否寻找存在,所以你不必自己做:

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;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。