我的网页上出现此错误
致命错误:在第59行的/home/register/public_html/wp-content/themes/rmm-store/woocommerce/myaccount/my-orders.php中调用未定义的函数printf __()
见下面第59行(offending line
评论):
<tr class="order">
<td class="order-number">
<a href="<?php echo esc_url( add_query_arg('order', $order->id, get_permalink( woocommerce_get_page_id( 'view_order' ) ) ) ); ?>">
<?php echo $order->get_order_number(); ?>
</a>
</td>
<td class="order-date">
<time datetime="<?php echo date('Y-m-d', strtotime( $order->order_date ) ); ?>" title="<?php echo esc_attr( strtotime( $order->order_date ) ); ?>"><?php echo date_i18n( get_option( 'date_format' ), strtotime( $order->order_date ) ); ?></time>
</td>
<td class="order-status" style="text-align:left; white-space:nowrap;">
/* offending line 59 */ <?php echo ucfirst( printf__( '%s', 'woocommerce' ), $status->name ); ?>
</td>
<td class="order-total">
<?php echo sprintf( _n( '%s for %s item', '%s for %s items', $item_count, 'woocommerce' ), $order->get_formatted_order_total(), $item_count ); ?>
</td>
答案 0 :(得分:2)
Wordpress中的__()
运算符适用于i18n or internationalization。这工作正常,但printf结构不正确,因此抛出错误,这是一个简单的修复,但如果你有一个多语言网站,你绝不应该省略__()
。
直接来自文档:
解决方案是使用printf系列函数。 printf和sprintf特别有用。以下是垃圾邮件计数问题的正确解决方案:
因此,正确实施如下:
printf(__( '%s', 'woocommerce' ), $status->name ));