调用未定义的函数printf __()

时间:2013-12-15 01:17:28

标签: php wordpress

我的网页上出现此错误

  

致命错误:在第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>

1 个答案:

答案 0 :(得分:2)

Wordpress中的__()运算符适用于i18n or internationalization。这工作正常,但printf结构不正确,因此抛出错误,这是一个简单的修复,但如果你有一个多语言网站,你绝不应该省略__()

直接来自文档:

解决方案是使用printf系列函数。 printf和sprintf特别有用。以下是垃圾邮件计数问题的正确解决方案:

因此,正确实施如下:

printf(__( '%s', 'woocommerce' ), $status->name ));