در وردپرس ، شورت کد (Shortcode) یک ویژگی برای قرار دادن محتویات در نوشته یا برگه ها به صورت برنامه نویسی شده است . شورت کد ها زمانی کار می کنند که اختصاصا درون نوشته ها یا برگه قرار بگیرند . برای ساخت شورت کد در وردپرس ما باید یک هوک do_shortcode را بسازیم . شورت کد ها از نسخه ۲٫۵ بعد در وردپرس معرفی شدند و قرار دادن اطلاعات بخصوص الان در محتویات پست ها بسیار آسان شده است.
برای قرار دادن شورت کد ها در نوشته یا برگه های وردپرس ، باید آن را به اینصورت [shortcode-name]در قسمت محتوا قرار بدیم. و بعد نیاز است برای ساخت شورت کد در وردپرس که هوک (hook) مربوطه را در داخل پوسته خود اضافه کنیم. این هوک شامل یک اسم و یم تابع بازگشتی برای نمایش محتویات خواسته شده به جای شورت کد است . خود وردپرس لیست بلندی از شوردت کد های داخلی مثل [galley], و بیشتر ارایه می دهد
نحوه ساخت شورت کد در وردپرس
API شورت کد یا همان کد کوتاه در وردپرس به شما اجازه ساخت شورت کد دلخواه را می دهد . تابع add_shortcode() برای این هدف استفاده می شود. این تابع دو تا ورودی می گیرد .
پارامتر اول اسم شورت کد و پارامتر دوم تابع بازگشتی که محتویات را به جای تگ شورت کد نشان می دهد.
کد های زیر را در فایل functions.php قالب خود به بعنوان یک هوک اضافه کنید . تابع بازگشتی یک خروجی html را به جای تگ شورت کد در محتویان نوشته ای که اضافه کردید ، نشان می دهد.
1 2 3 4 5 6 7 |
<?php function getPostFooterNote() { return "<div>Hope you find this tutorial useful!<br><a href='#'>Share this link</a> on Social Media.</div>"; } add_shortcode('post-footer-note', 'getPostFooterNote'); ?> |
نحوه استفاده از شورت کد (shortcode)
در وردپرس ، شورت کد ها به روش های خاص زیادی استفاده می شوند. API شورت کد ها از دو حالت خود اتکا (stand-alone) و تگ دربرگیرنده (container tag) پشتیبانی میکند .که به اینها بسته (self-closing) و باز (enclosing tag) هم می گوییم.
ساده ترین راه برای استفاده از شورت کد دلخواهی که ساختیم به صورت بسته (self-closing) است :
1 |
[post-footer-note] |
همچنین شورت کد ها می توانند حاوی مشخصه (attribute) هم باشند که بر اساس این مشخصه ها شرط هایی را در هوک تابع بازگشتی تعریف می کنیم.
1 |
[post-footer-note share='false'] |
در شورت کد بالا ، به مشخصه ‘share’ مقدار false داده شده . پس تابع بازگشتی لینک share را در خروجی html نشان نخواهد داد.
1 2 3 4 5 6 7 8 9 |
<?php function getPostFooterNote($attributes) { $output = "<div>Hope you find this tutorial useful!</div>"; if($attributes["share"] == "true") { $output .= "<div><a href='#'>Share this link</a> on Social Media.</div>"; } return $output; } ?> |
Enclosing tag به ما اجازه استفاده از تابع بازگشتی در محتویات را می دهد.
1 |
[source]<?php echo "Enclosing Shortcode Example"; ?>[/source] |
کد php داخل دربرگیرنده شورت کد محتویات تابع بازگشتی را به ما نشان می دهد .
1 2 3 4 5 6 7 8 9 10 |
<span class="kwd">function</span><span class="pln"> prettySource</span><span class="pun">(</span><span class="pln">$atts</span><span class="pun">,</span><span class="pln"> $content</span><span class="pun">=</span><span class="str">""</span><span class="pun">)</span> <span class="pun">{</span><span class="pln"> $content </span><span class="pun">=</span><span class="pln"> str_replace</span><span class="pun">(</span><span class="str">">"</span><span class="pun">,</span><span class="str">">"</span><span class="pun">,</span><span class="pln">$content</span><span class="pun">);</span><span class="pln"> $content </span><span class="pun">=</span><span class="pln"> str_replace</span><span class="pun">(</span><span class="str">"<"</span><span class="pun">,</span><span class="str">"<"</span><span class="pun">,</span><span class="pln">$content</span><span class="pun">);</span><span class="pln"> $output </span><span class="pun">=</span> <span class="str">"<pre>"</span><span class="pun">;</span><span class="pln"> $output </span><span class="pun">.=</span><span class="pln"> $content</span><span class="pun">;</span><span class="pln"> $output </span><span class="pun">.=</span> <span class="str">"</pre>"</span><span class="pun">;</span> <span class="kwd">return</span><span class="pln"> $output</span><span class="pun">;</span> <span class="pun">}</span><span class="pln"> add_shortcode</span><span class="pun">(</span><span class="str">'source'</span><span class="pun">,</span> <span class="str">'prettySource'</span><span class="pun">);</span> |
شورت کد ها یکی از موارد خیلی خیلی مهم و جذاب در بحث برنامه نویسی پلاگین و قالب ها در وردپرس هستند که در مقاله ساخت شورت کد در وردپرس به آن پرداختیم
موفق باشید.