这是我在主题函数中的函数。php:
function better_editions( $query ) {
// Categories act as \'Editions\' on my site
$get_edition = get_query_var( \'category_name\' );
if( $get_edition !== \'\' ) {
$edition = get_term_by( \'slug\', $get_edition, \'category\' );
if( $edition && !is_wp_error( $edition ) ) {
$edition = $get_edition;
}
}
if ( $query->is_category() && isset($edition) && $query->is_main_query() ) {
$query->set( \'post_type\', array( \'post\' ) );
$query->set( \'category_name\', $edition.\', intl\' );
}
}
add_action( \'pre_get_posts\', \'better_editions\' );
我使用该功能显示所有类别下属于“国际(intl)”类别的帖子(在所有类别档案、类别帖子列表等中)。
据我所知,为了定义多个类别category_name
在里面$query->set();
, 这是唯一的办法,除非我错了:
$query->set( \'category_name\', \'category1, category2\' );
这就是我正在做的,如上面的函数所示。
问题是,函数就位后,我会出现以下错误:
Notice: 数组到字符串的转换/var/www/wp.dev/public/wp-admin/edit.php 在线225
The error is only visible 具有debug
已打开,并且仅在特定类别的“所有帖子”页面上打开。例如
http://wp.dev/wp-admin/edit.php?category_name=intl
。。。以上链接列出了wp admin中“International(intl)”类别下的所有帖子。
我在函数中做错了什么?如何修复此问题?
NOTE: 我不想使用!is_admin()
因为我希望该函数也应用于wp admin。
最合适的回答,由SO网友:s_ha_dum 整理而成
我无法复制该问题,但是the Notice
references this line:
add_screen_option( \'per_page\', array( \'label\' => $title, \'default\' => 20, \'option\' => \'edit_\' . $post_type . \'_per_page\' ) );
这让我觉得你应该在你的
GET
一串
http://wp.dev/wp-admin/edit.php?post_type=post&category_name=intl
只是一个猜测,因为我不能重复这个问题。如果这不能推动你前进,我将删除答案:)