رفتن به مطلب

پرسش درباره یک تابع وردپرس؟


پست های پیشنهاد شده

سلام دوستان

یه تابعی هست در واقع یک بلوک کد هست که من نمیدونم کاربردش چیه کسی میتونه یه توضیح مختصر درباره عملکرد و کاربردش بگه؟

سپاس

<?php
  /* translators: %1$s: smiley */
  $archive_content = '<p>' . sprintf( esc_html__( 'Try looking in the monthly archives. %1$s', 'dominname' ), convert_smilies( ':)' ) ) . '</p>';
?>

 

لینک به ارسال
در 6 دقیقه قبل، mehran-b گفته است :

سلام و درود

 

کدوم تابع رو متوجه عملکردش نشدید؟

سلام

راستش بلوک کامل کد به صورت زیر هست:

<?php

  /* translators: %1$s: smiley */
  $archive_content = '<p>' . sprintf( esc_html__( 'Try looking in the monthly archives. %1$s', 'erjae' ), convert_smilies( ';)' ) ) . '</p>';
  the_widget( 'WP_Widget_Archives', 'dropdown=1', "after_title=</h2>$archive_content" );

  the_widget( 'WP_Widget_Tag_Cloud' );
?>

میدونم که $archive_content یه متغیره که یه مقداری رو بهش داده. sprintf رو متوجه چگونگی عملکردش نمیشم. چونکه با echo و print و printf تست کردم خطا میگیره.

convert_smilies هم میدونم که emoji ها رو نمایش میده. the_widget هم میدونم که چیه. این وسط sprintf عملکردش رو میخوام یعنی چکار میکنه؟

لینک به ارسال
در 3 دقیقه قبل، masoudch گفته است :

sprintf

تعریف ساده، برای خروجی گرفتن رشته و متغییر بصورت قدم به قدم هست. . اون %1$s رو شما متغییر  در نظر بگیرید. که خندانک رو بهش پاس میده. اگه یک متغییر دیگه بودف یک مقدار دومی هم باید باشه که اون بهش پاس داده بشه و همینطور ادمه پیدا میکنه.

  • امتیاز 3
لینک به ارسال
در 2 دقیقه قبل، Morteza گفته است :

تعریف ساده، برای خروجی گرفتن رشته و متغییر بصورت قدم به قدم هست. . اون %1$s رو شما متغییر  در نظر بگیرید. که خندانک رو بهش پاس میده. اگه یک متغییر دیگه بودف یک مقدار دومی هم باید باشه که اون بهش پاس داده بشه و همینطور ادمه پیدا میکنه.

ممنون متوجه شدم. فقط همین %1$s چکار میکنه؟ میتونم با چه مقداری دیگه ای جایگزین کنم؟

لینک به ارسال

درود مجدد

 

تابع sprintf خروجی فرمت بندی شده به ما میده.

درای بی نهایت آرگومانه.

یه مثال هم میزنم ازش:

$name = "Mehran";
$var = sprintf('Salam %1$s', $name);

در مثال بالا داخل متغییر var مقدار Salam Mehran قرار میگیره.

حالا سوال پیش میاد این %1$s یعنی چی؟

جواب اینه مقدار رشته ای آرگومان دوم تابع sprintf رو بذار جای %1$s.

یه مثال کامل بزنیم:

$string = "Mehran";
$decimal = 5;
$float = 6.75;
$var = sprintf('%1$s is String And %2$d is Decimal And %3$f is Float', $string, $decimal, $float);

که الان داخل متغییر var رشته زیر قرار داره:

Mehran is String And 5 is Decimal And 6.75 is Float

%1 یعنی آرگومان دوم %2 یعنی آرگومان سوم %3 یعنی آرگومان 4 ام.

حالا بعد هر کدوم از اینا اگر $s باشه یعنی مقدار رشته ای اگر $d باشه یعنی مقدار دسیمال یا عدد صحیح و $f هم یعنی اعداد اعشاری.

 

موفق باشید

  • امتیاز 3
لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...