问题描述
我收到此错误:
注意:未定义索引:/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 种方法来访问它的变量:get
和 set
,前者已经检查了你所访问的变量是否寻找存在,所以你不必自己做:
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;
}