- آموزش زمان بندی رویدادها با WP Cron در وردپرس
- مقدمه ای بر توسعه افزونه
- افزونه چیست ؟
- مبانی افزونه
- نیازمندی های هدر
- درج یک مجوز نرم افزار در افزونه
- قلاب های فعال و غیر فعال سازی
- متدهای حذف در سایت های وردپرس
- امنیت افزونه
- بررسی قابلیت های کاربر
- اعتبار سنجی داده ها
- امنیت ورودی
- امنیت خروجی
- Nonce ها
- قلاب ها
- اکشن ها (Actions)
- فیلترها (Filters)
- ایجاد قلاب های سفارشی
- تاپیک های پیشرفته
- منوهای مدیریت
- منوهای سطح بالا
- زیر منوها
- کدهای کوتاه
- مبانی کدهای کوتاه
- کدهای کوتاه جفتی
- کدهای کوتاه پارامتردار
- تنظیمات
- API های تنظیمات
- ایجاد و استفاده از گزینه ها
- گزینه های تکی و آرایه ای
- صفحه تنظیمات سفارشی
- فراداده (Metadata)
- ایجاد و مدیریت فراداده نوشته
- ایجاد متاباکس های سفارشی
- دریافت فراداده
- انواع نوشته سفارشی
- ایجاد پست تایپ سفارشی
- کار با داده های پست تایپ ها
- طبقه بندی یا Taxonomy در وردپرس
- ایجاد و کار با طبقه بندی های سفارشی
- کار با متادیتا (Metadata) کاربران در وردپرس
- ایجاد و مدیریت کاربران در وردپرس
- نقش ها و قابلیت های کاربران در وردپرس
- آموزش استفاده از سرویس HTTP API در وردپرس
- آموزش استفاده از ایجکس (Ajax) در وردپرس
- آموزش استفاده از Transients برای کش کردن در وردپرس
- آموزش WP-Cron وردپرس
- آموزش استفاده از جیکوئری (jQuery) در وردپرس
- آموزش کار با PHP سمت سرور و Enqueue در وردپرس
- قلاب کردن WP-Cron وردپرس به سیستم زمان بندی سرور
در بخش های قبلی با کدهای کوتاه تکی یا خودبند (Self-closing) مانند [myshortcode] آشنا شدید . کدهای کوتاه همچنین می توانند به صورت زوج (enclosing) مانند [/myshortcode] محتوا[myshortcode] نیز بیایند .
اگر یک کد کوتاه به صورت زوج مورد استفاده قرار گیرد ، تابع فراخوان کدکوتاه ، یک پارامتر دوم که همان محتوا محصور شده در بین زوج کدهای کوتاه است را ، نیز دریافت می کند .
ممکن است کاربران بخواهند از شکل ساده کد کوتاه شما استفاده کنند ، پس باید تدابیری بیاندیشید که کد کوتاه شما بدون پارامتر دوم نیز بخوبی عمل کند .
function my_shortcode_handler( $atts, $content = null )
در این مواقع از تابع is_null($content) برای تشخیص بین حالت ساده و حالت زوج کدهای کوتاه استفاده می شود .
زمانی که محتوای کد کوتاه ، در زوج کدهای کوتاه محصور شده باشد ، ماکروی کامل کد کوتاه ، شامل محتوا ، جایگزین خروجی تابع می شود .
همچنین وظیفه تابع فراخوان است که مسئولیت امن کردن یا رمزگذاری رشته محتوا و نمایش آن در خروجی را بر عهده بگیرد .
در اینجا یک مثال کامل از کدهای کوتاه زوجی را مشاهده می کنید :
function caption_shortcode( $atts, $content = null ) {
return '<span class="caption">' . $content . '</span>';
}
add_shortcode( 'caption', 'caption_shortcode' );
زمانی که یک کد کوتاه ، به صورت زیر استفاده می شود :
[My Caption]
خروجی به شکل زیر خواهد شد :
My Caption
و چون محتوای کد کوتاه همراه با سایر نتایج تابع فراخوان کد کوتاه ، برگشت داده می شود ، کاربر می تواند کدهای HTML خام را نیز در محتوا قرار دهد تا نتیجه پویاتر شود . به عنوان مثال کد کوتاه زیر را در نظر بگیرید :
و خروجی :
چنانچه لازم باشد در یک کد کوتاه محتوایی نظیر کدهای خام HTML نیز برگردانده شود ، باید آن محتوا را قبل از ارسال به خروجی توسط فیلتر کردن یا فرار ، امن کرد .
Shortcodeception – استفاده از یک کد کوتاه در یک کد کوتاه دیگر
چنانچه پارامتر $content شامل یک کوتاه کوتاه دیگر نیز باشد ، تجزیه کننده کد کوتاه آن را نادیده می گیرد .
به عنوان مثال کد کوتاه زیر :
Caption: [myshortcode]
باعث خروجی :
Caption: [myshortcode]
خواهد شد .
چنانچه یک کد کوتاه جفتی (enclosing) اجازه قرار گرفتن یک کد کوتاه دیگر را در محتوای خود را بدهد ، امکان فراخوانی تابع do_shortcode() به صورت بازگشتی وجود دارد .
function caption_shortcode( $atts, $content = null ) {
return '<span class="caption">' . do_shortcode( $content ) . '</span>';
}
در مثال قبل می توان مطمئن بود که کد کوتاه موجود در محتوا ، پردازش شده است .
نتیجه کد کوتاه داخلی می تواند چیزی شبیه زیر باشد :
Caption: The result of myshortcode's handler function
اشکالات
تجزیه کننده کد کوتاه نمی تواند یک کد کوتاه تو در توی جفتی و تکی را کنترل کند .
به عنوان مثال کد کوتاه زیر را در نظر بگیرید :
[myshortcode example='non-enclosing' /] non-enclosed content [myshortcode] enclosed content [/myshortcode]
تجزیه کننده به جای اینکه کدهای کوتاه را به صورت کد کوتاه جفتی در نظر بگیرد ، آنها را به صورت ۲ کد کوتاه تکی در نظر میگیرد .
کدهای کوتاه جفتی نیز مانند کدهای کوتاه تکی می توانند دارای پارامتر(هایی) باشند .
در اینجا یک مثال از caption_shortcode() بهبود داده شده را که از خاصیت class پشتیبانی می کند را، مشاهده می کنید :
function caption_shortcode( $atts, $content = null ) {
$a = shortcode_atts( array(
'class' => 'caption',
), $atts );
return '<span class="' . esc_attr( $a['class'] ) . '">' . $content . '</span>';
}
add_shortcode( 'caption', 'caption_shortcode' );
[My Caption]
خروجی
My Caption






