رفتن به مطلب

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


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

سلام دوستان

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

سپاس

<?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 رو شما متغییر  در نظر بگیرید. که خندانک رو بهش پاس میده. اگه یک متغییر دیگه بودف یک مقدار دومی هم باید باشه که اون بهش پاس داده بشه و همینطور ادمه پیدا میکنه.

لینک به ارسال
در 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 هم یعنی اعداد اعشاری.

 

موفق باشید

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...