web-dev-qa-db-ja.com

wordpress woocommerce php変数使用率%1 $ s

私はwoocommerceでwordpressを使用しており、myaccount.phpのコピーを操作しようとしています。デフォルトのコードでは、慣れていないか、ドキュメントを見つけることができなかった変数を使用しています。問題の変数は%1 $ s、%2 $ s、および%sです

<p class="myaccount_user">
<?php
printf(
    __( 'Hello <strong>%1$s</strong> (not %1$s? <a href="%2$s">Sign out</a>).', 'woocommerce' ) . ' ',
    $current_user->display_name,
    wp_logout_url( get_permalink( wc_get_page_id( 'myaccount' ) ) )
);
?>

<?php
printf( __( 'From this page you can view your recent orders, manage your shipping and billing addresses and <a href="%s">edit your password and account details</a>.', 'woocommerce' ),
    wc_customer_edit_account_url()
);
?>
</p>

変数、それらが表すもの、およびそれらの使用方法を特定するにはどうすればよいですか?

ありがとうございました。

2
tech

%1$sおよび%2$sは、printf()ファミリーで使用される標準の「変換仕様」(つまりplaceholders)です。 PHP関数(WordPressまたはWooCommerceとは関係ありません)。これらは、printf()関数に渡される引数値でreplacedされます。

したがって、最初の例では、%1$s$current_user->display_name(1番目の引数)の値に置き換えられ、%2$swp_logout_url( get_permalink( wc_get_page_id( 'myaccount' ) ) )(2番目の引数)から返された値に置き換えられます。

プレースホルダーは、値の表示方法howを指定します。

  • %は、プレースホルダーの開始を示します。

  • 後に続く数字1は、引数の参照であり、この例では1または2です。

  • sは文字列を示します。

詳細なリファレンス:
http://php.net/manual/en/function.sprintf.php

2
MrWhite