archdexls主题游戏页面game-play.php有评论时,报错( ! ) Warning: printf(): Too few arguments in D:\wamp\www\wp-cont...

原文链接: http://www.cnblogs.com/cuizhf/p/4548048.html
( ! ) Warning: printf(): Too few arguments in D:\wamp\www\wp-content\themes\arcadexls\games-play.php on line 97
Call Stack
#    Time    Memory    Function    Location
1    0.0000    241656    {main}( )    ..\index.php:0
2    0.0000    244696    require( 'D:\wamp\www\wp-blog-header.php' )    ..\index.php:17
3    0.5254    33285248    require_once( 'D:\wamp\www\wp-includes\template-loader.php' )    ..\wp-blog-header.php:16
4    0.5254    33285336    do_action( )    ..\template-loader.php:12
5    0.5313    33304000    call_user_func_array:{D:\wamp\www\wp-includes\plugin.php:496} ( )    ..\plugin.php:496
6    0.5313    33304080    arcadexls_play_template_redirect( )    ..\plugin.php:496
7    0.5313    33304272    get_template_part( )    ..\template_redirect.php:118
8    0.5313    33305136    locate_template( )    ..\general-template.php:171
9    0.5313    33305320    load_template( )    ..\template.php:477
10    0.5313    33322456    require( 'D:\wamp\www\wp-content\themes\arcadexls\single-play.php' )    ..\template.php:503
11    0.7578    34129056    get_template_part( )    ..\single-play.php:8
12    0.7578    34129760    locate_template( )    ..\general-template.php:171
13    0.7578    34129880    load_template( )    ..\template.php:477
14    0.7578    34196248    require( 'D:\wamp\www\wp-content\themes\arcadexls\games-play.php' )    ..\template.php:503
15    0.8018    34206848    printf ( )    ..\games-play.php:97

第97行代码

            class="iconb-date"> echo get_the_date('d'); ?> echo get_the_date('M'); ?> , echo get_the_date('Y'); ?> class="iconb-user"> $post->post_author); ?>">$post->post_author); ?> class="iconb-cate"> echo get_the_category_list(', '); ?> class="iconb-comt">printf( _n( 'Comments: %2$s', 'Comments: %1$s', get_comments_number(), MYAPB_THEMENAME),number_format_i18n( get_comments_number() )); ?> echo get_the_tag_list(''.__('Tags:', MYAPB_THEMENAME).' ', ', ',''); ?>

其中显示评论及其条数的代码

printf( _n( 'Comments: %2$s', 'Comments: %1$s', get_comments_number(), MYAPB_THEMENAME),number_format_i18n( get_comments_number() )); ?>

不是太懂,稍微查了一下,“如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入 % 符号之后,由数字和 "\$" 组成。”

其中的"%1$s"和"%2$s"说占位符吧,少了\;说不是占位符吧,多了数字和$;搞不懂这里_n是做什么用的,也是一个函数,而且要四个参数?

的结果是arcadexls

的结果是1

%2$s', 'Comments: %1$s', get_comments_number(), MYAPB_THEMENAME) ?>的结果是Comments: %2$s

的结果是1

故最后printf()方法的实际调用为printf("%2$s", 1);  很明显这个应该是有问题的

将代码中的1$和2$都去掉,改为

printf( _n( 'Comments: %s', 'Comments: %s', get_comments_number(), MYAPB_THEMENAME),number_format_i18n( get_comments_number() )); ?>

OK,至少可以解决眼下问题,虽然没完全弄明白!

 

转载于:https://www.cnblogs.com/cuizhf/p/4548048.html

你可能感兴趣的:(archdexls主题游戏页面game-play.php有评论时,报错( ! ) Warning: printf(): Too few arguments in D:\wamp\www\wp-cont...)