masoudch

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

6 پست در این موضوع قرار دارد

سلام دوستان

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

سپاس

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

 

0

به اشتراک گذاری این پست


لینک به پست

سلام و درود

 

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

0

به اشتراک گذاری این پست


لینک به پست
در 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 عملکردش رو میخوام یعنی چکار میکنه؟

0

به اشتراک گذاری این پست


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

sprintf

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

3

به اشتراک گذاری این پست


لینک به پست
در 2 دقیقه قبل، Morteza گفته است :

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

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

0

به اشتراک گذاری این پست


لینک به پست

درود مجدد

 

تابع 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

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری