( ! ) Warning: printf(): Too few arguments in D:wampwwwwp-content hemesarcadexlsgames-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:wampwwwwp-blog-header.php' ) ..index.php:17 3 0.5254 33285248 require_once( 'D:wampwwwwp-includes emplate-loader.php' ) ..wp-blog-header.php:16 4 0.5254 33285336 do_action( ) .. emplate-loader.php:12 5 0.5313 33304000 call_user_func_array:{D:wampwwwwp-includesplugin.php:496} ( ) ..plugin.php:496 6 0.5313 33304080 arcadexls_play_template_redirect( ) ..plugin.php:496 7 0.5313 33304272 get_template_part( ) .. emplate_redirect.php:118 8 0.5313 33305136 locate_template( ) ..general-template.php:171 9 0.5313 33305320 load_template( ) .. emplate.php:477 10 0.5313 33322456 require( 'D:wampwwwwp-content hemesarcadexlssingle-play.php' ) .. emplate.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( ) .. emplate.php:477 14 0.7578 34196248 require( 'D:wampwwwwp-content hemesarcadexlsgames-play.php' ) .. emplate.php:503 15 0.8018 34206848 printf ( ) ..games-play.php:97
第97行代码
<span class="iconb-date"><?php _e('Uploaded on:', MYAPB_THEMENAME); ?> <strong><?php echo get_the_date('d'); ?> <?php echo get_the_date('M'); ?> , <?php echo get_the_date('Y'); ?></strong></span> <span class="iconb-user"><?php _e('Uploader:', MYAPB_THEMENAME); ?> <a href="<?php echo get_author_posts_url($post->post_author); ?>"><?php the_author_meta('display_name',$post->post_author); ?></a></span> <span class="iconb-cate"><?php _e('Categories:', MYAPB_THEMENAME); ?> <?php echo get_the_category_list(', '); ?></span> <span class="iconb-comt"><?php printf( _n( 'Comments: <strong>%2$s</strong>', 'Comments: <strong>%1$s</strong>', get_comments_number(), MYAPB_THEMENAME),number_format_i18n( get_comments_number() )); ?></span> <?php echo get_the_tag_list('<span class="iconb-tags">'.__('Tags:', MYAPB_THEMENAME).' ', ', ','</span>'); ?>
其中显示评论及其条数的代码
<?php printf( _n( 'Comments: <strong>%2$s</strong>', 'Comments: <strong>%1$s</strong>', get_comments_number(), MYAPB_THEMENAME),number_format_i18n( get_comments_number() )); ?>
不是太懂,稍微查了一下,“如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入 % 符号之后,由数字和 "$" 组成。”
其中的"%1$s"和"%2$s"说占位符吧,少了;说不是占位符吧,多了数字和$;搞不懂这里_n是做什么用的,也是一个函数,而且要四个参数?
<?php echo MYAPB_THEMENAME ?>的结果是arcadexls
<?php echo get_comments_number() ?>的结果是1
<?php echo _n( 'Comments: <strong>%2$s</strong>', 'Comments: <strong>%1$s</strong>', get_comments_number(), MYAPB_THEMENAME) ?>的结果是Comments: %2$s
<?php echo number_format_i18n( get_comments_number() ) ?>的结果是1
故最后printf()方法的实际调用为printf("%2$s", 1); 很明显这个应该是有问题的
将代码中的1$和2$都去掉,改为
<?php printf( _n( 'Comments: <strong>%s</strong>', 'Comments: <strong>%s</strong>', get_comments_number(), MYAPB_THEMENAME),number_format_i18n( get_comments_number() )); ?>
OK,至少可以解决眼下问题,虽然没完全弄明白!