کدهای کوتاه را چگونه در وردپرس استفاده کنیم

به کدی که در وردپرس با یک ای دی شناسایی می شوند و یا با یک نام که میتوان تمام عملیات اجرای یک قطعه کد طولانی را انجام دهد طوری که فقط با یک کد کوتاه میتوانید
تمام فعالیت هایی ک در یک کد php در نظر دارید را انجام بدهید کد های کوتاه یا Shortcode ها میگویند همانند لینک های کوتاه که بسیار مورد توجه ی افراد مختلف در سایت است
چرا که یکی از کد های پر طرفدار و کاربردی در وردپرس به حساب می آیند یکی از مهم ترین کاربرد های این لینک ها برای انتشار در شبکه های اجتماعی بسیار مناسب می باشند
البته باید توجه داشته باشید که امروزه سرویس های کوتاه کننده لینک بسیار زیادی وجود دارند که می توانند لینک های طولانی مطالب سایت را در چند کلمه خلاصه کنند
و همین مورد نشانه ی اهمیت لینک ها و کد های کوتاه دارد .

گذاشتن شورت کد در وردپرس

Shortcode ها در زبان برنامه نویسی وب (وردپرس) عبارت های کوتاهی هستند که در محتوای خود تابعی را از دستورات PHP فراخوانی می کند.
کدهای کوتاه می‌توانند توسط افزونه یا پوسته‌های مختلف به سیستم وردپرس اضافه شوند البته امروزه افزونه هایی نیز برای سهولت انجام این کار در نظر گرفته شده است .
یا این‌که خود شما آنها را در فایل functions.php اضافه کنید. Short Code به شما این امکان را می‌دهند که تنها با نوشتن کدهای نسبتاً کوتاهی، دستورات PHP را در نوشته‌های خود اجرا کنید.
از جمله قابلیت هایی که کد های کوتاه دارند این است که شما نمیتوانید از دستورات php به صورت مستقیم در نوشته یا برگه یا ابزارک ها استفاده کنید اما با استفاده از کد های کوتاه میتوانید
دستورات را به صورت غیر مستقیم در نوشته ، برگه و ابزارک ها استفاده کنید .
کد کوتاه و طریقه استفاده از آن به چند صورت است: استفاده مستقیم در نوشته یا برگه که کافیست کد کوتاه خود را در قالب [] وارد کنید
اما اگر کد های کوتاه کار دستورات php را انجام دهند شما نیازی به استفاده از کد کوتاه در قالب نخواهید داشت و به صورت مستقیم میتوان استفاده کرد
اما گاهی کد های php چندین خط هستند و میتوان با استفاده از کد کوتاه تنها در یک خط آنها را فراخوانی کرد و یا فرض کنید از افزونه ای مثلا اسلایدر استفاده میکنید
که کد کوتاه به شما میدهد و میخواهید در بخشی از قالب از آن استفاده کنید میتوانید کد کوتاه اسلایدر را مستقیما در قالب اضافه کنید و استایل مد نظر را به آن بدهید .
تا به حال برای شما نیز پیش آمده است که بخواهید افزونه وردپرس مورد نظر را نه در برگه یا نوشته بلکه در صفحه اصلی یا هر جای دیگر وب سایت وردپرسی خود استفاده نمایید ؟
برای انجام این کار شما باید مراحلی را طی کنید :

  1. افزونه ی مورد نظر را نصب سپس Shortcode ایجاد شده را کپی نمایید
  2. با استفاده از ابزار inspect element مرورگر خود مکان مورد نظر را که برای آن افزونه انتخاب نموده اید بررسی کنید .
  3. در نظر داشته باشید باید بررسی کنید افزونه را میخواهید قبل یا بعد از کدام قسمت اضافه کنید و نام آن قسمت را به خاطر داشته باشید.
  4. وارد قسمت مدیریت سایت و پیشخوان شده و به قسمت ویرایشگر رفته و در بخش مورد نظر که قصد دارید افزونه را در آن قرار دهید را پیدا کنید.
  5. کد زیر را در آنجا قرار دهید و به جای x کد کوتاه شده مورد نظر را کپی نموده و قرار دهید.
 <?php echo do_shortcode("[x]"); ?>
  • در برخی از نسخه ها کد کوتاه به جای قرار گرفتن در دبل کوتیشن (“[x]”) در تک کوتیشن عملکرد مناسب را خواهد داشت و کافیست بدین صورت تایپ نمایید (‘[x]’)

ساختار کد های کوتاه – short codes – در وردپرس

کد های کوتاه میتوانند مانند تگ های html دارای صفت و یا محتوا می باشد که می توان آنها را ایجاد نمود ولی به جای < ویا > ما از [ و ] استفاده می کنیم . در زیر چند نمونه ساختار کد های کوتاه را آورده ایم به انها توجه کنید .

&lt;br data-mce-bogus="1"&gt;
[shortcodename val1="" val2="" ...][/shortcodename]
 [shortcodename]
 [shortcodename val1="" ...]
 [shortcodename]content here[/shortcodename]

برای ساخت و ایجاد کد کوتاه باید از تابع add_shortcode استفاده کرد .

add_shortcode ( string $tag, callable $func )

ورودی اول نام تگ می باشد که اگر به طور مثال آن را HOSTINOدر نظر بگیریم کاربران با استفاده از [HOSTINO] می توانند به کد کوتاه دسترسی داشته باشند.
در ورودی دوم نام تابع مربوط به کد کوتاه می باشد و در زمانی که کاربر از کد کوتاه ما استفاده کند این تابع صدا زده می شود .

function digiwp_plugin_init(){
function digiwp_function(){
return "&lt;br&gt;شما MHDev را صدا زدید !&lt;br&gt;";
}
add_shortcode("digiwp","digiwp_function");
}
add_action("init","digiwp_plugin_init");

حال برای استفاده از کد کوتاه نیاز به دریافت ورودی داریم .

تنظیمات در کد های کوتاه وردپرس

کد های کوتاه نیز دارای تنظیمات هستند البته به صورت گرافیکی فقط افزونه های کد کوتاه تنظیمات دارند اما میتوانید برای کد های کوتاهی که دروردپرس اضافه شده است یا کرده اید نیز تغییراتی اعمال کنید
برای انجام تغییرات در کد کوتاه باید ابتدا آن را یافته که برای یافتن انها باید به آدرس wp-content/themes/ نام پوسته مراجعه کرده و سپس باید در فایل function.php شورت کد های خود را جست و جو کنید.
قالب کدی که شما به دنبال آن هستید مانند زیر است :

function my_shortcode_function() { $i = '&lt;p&gt;Hello World!&lt;/p&gt;';return $i;} add_shortcode('my-shortcode', 'my_shortcode_function');

و بعد ازیافتن می توانید تغییرات دلخواه خود را انجام دهید .

دریافت ورودی توسط کد های کوتاه

در اولین روش شما می توانید ورودی را به عنوان صفت دریافت کنید

[digiwp name="هادی قربانی"]

با انجام این کار این ورودی ها به عنوان یک ارایه به ورودی اول تابع کد کوتاه ما ارسال می شوند . البته ممکن است برخی از صفات ضروری نباشند به همین خاطر می توانیم از تابع shortcode_atts استفاده نمود.
این تابع ۲ ورودی را دارا می باشد ، ورودی اول مقادیر پیشفرض و ورودی دوم ما صفت های دریافتی تابع است .

function digiwp_plugin_init(){
function digiwp_function($attr){
$attr = shortcode_atts([
"val1"=&gt;"Mhr",
"val2"=&gt;"Developer"
],$attr);
$val1 = $attr["val1"];
$val2 = $attr["val2"];
return "ورودی های شما &lt;br&gt; ورودی اول : $val1 &lt;br&gt; ورودی دوم :‌$val2 ";
}
add_shortcode("digiwp","digiwp_function");
}
add_action("init","digiwp_plugin_init");

در نوشته کد زیر را وارد کنید :

[digiwp val1="Test Val 1"]

با انجام این مراحل ورودی اول طبق ورودی ارسالی ما می باشد اما ورودی دوم ورودی پیشفرض است .

ورودی محتوایی

اگر بخواهید یک ورودی مانند یک محتوا را داشته باشید باید به صورت زیر عمل کنید . محتوای سفارشی مانند پیغام های خوش آمد گویی و یا غیره ضمن اینکه میتوانید متن های خود را نیز شرطی کنید
به صورتی که ابتدا یک پارامتر را مورد بررسی قرار دهد سپس عملیات اجرایی شما را انجام دهد.

[digiwp]

به وردپرس فارسی خوش آمدید.‌ این نخستین نوشته‌‌ی شماست. می‌توانید ویرایش یا پاکش کنید و پس از آن نوشتن را آغاز کنید!

[/digiwp]

وردپرس در چنین مواقعی تمام محتوا را ( در قالب HTML) به عنوان ورودی دوم تابع برای شما می فرستد .
به مثال زیر توجه فرمایید :

function mhrdev_plugin_init(){
function mhrdevvip_function($attr,$content){
$attr = shortcode_atts([
"onlyvip"=&gt;"true"
],$attr);
if($attr["onlyvip"] == "true"){
if(isVip()){
return "محتوای ویژه :‌ &lt;br&gt;".$content;
}else{
return "&lt;hr&gt;شما کاربر VIP نیستید ...&lt;hr&gt;";
}
}else{
return "محتوای ویژه :‌ &lt;br&gt;".$content;
}
}
add_shortcode("mhrdevvip","mhrdevvip_function");
}
add_action("init","mhrdev_plugin_init");
&amp;nbsp;
function isVip(){
// این یک تابع نمایشی است که در آن باید تست کنیم که کاربر vip است یا خیر
return false;
}

در کد بالا یک ورودی با نام isVip که اگر آن را برابر true قرار دهیم چک میکند که کاربر ویژه است یا نه اگر کاربر ویژه بود متن محتوا ی کد کوتاه را نمایش می دهد در غیر این صورت پیام شما کاربر VIP نیستید
را نمایش می دهید .اگر isVip هم برابر true نبود که بدون در نظر گرفتن VIP بودن محتوا را نمایش می دهد .

[digiwp]

به وردپرس فارسی خوش آمدید.‌ این نخستین نوشته‌‌ی شماست. می‌توانید ویرایش یا پاکش کنید و پس از آن نوشتن را آغاز کنید!

[/digiwp]
[digiwp onlyvip="false"]

به وردپرس فارسی خوش آمدید.‌ این نخستین نوشته‌‌ی شماست. می‌توانید ویرایش یا پاکش کنید و پس از آن نوشتن را آغاز کنید!

[/digiwp]

با کدی که در بالا آورده ایم می توان فهمید که هم از صفت ها و هم از محتوا با هم استفاده نمایید .

نحوه افزودن شورت کد به وردپرس

برای قرار دادن کد های کوتاه در فایل های قالب وردپرس باید از نمونه زیر استفاده کنید

&lt;?php echo do_shortcode("[example_shortcode]"); ?&gt;

شما میتوانید با استفاده از یک قطعه کد برای حذف شورت کد ها از قالب وردپرس استفاده کنید البته توجه داشته باشید استفاده از شورت کد های بسیار زیاد در فایل های قالب وردپرس بسیار خطرناک است
و بهتر چندان این کار انجام نشود حال برای حذف کد های کوتاه باید در فایل function.php کد زیر را قرار دهید:

add_shortcode( 'نام کد کوتاه', '__return_false' );

این کد شورت کد های مورد نظر شما را غیرفعال میکند .
برای مثال شما یک پیغام برای اعضا دارید که نیاز است در برخی از برگه ها یا نوشته ها نمایش داده شود اگر بخواهید میتوانید از طریق وارد کردن مستقیم کد کوتاه اینکار را انجام دهید
ولی نوشتن چندین خط به صورت تکراری کار شما را کمی سخت تر میکند و یا اینکه میتوانید از زمینه دلخواه استفاده کنید و تنظیمی اعمال کنید
که اگر این فیلد ها پر بود نمایش داده شود و در غیر این صورت خیر . اما میتواند از کد کوتاه استفاده کنید کدی بنوسید که درون یک کد کوتاه با نام دلخواه خود قرار گیرد
مطابق با دستورات بالا و میتوانید کد کوتاه خود را درون برگه ، نوشته و ابزارک ها استفاده کنید .