افزودن لیست کشویی کدهای کوتاه (shortcodes) به ویرایشگر وردپرس
همانطور که قبلا هم گفتیم کدهای کوتاه یکی از ویژگی های بسیار خوب وردپرس می باشند که این امکان را به ما می دهند تا بتوانیم کارهایی که نیاز به نوشتن کد زیاد دارند را تنها با یک خط کد انجام دهیم. مزایای shortcode ها بسیار زیاد است به همین خاطر هم این روز ها اکثر قالب های حرفه ای از آنها استفاده می کنند. اما زمانی که تعداد کدهای کوتاه سایت زیاد می شود یک مسئله جدی و آن هم به خاطر سپردن آنها مطرح می شود.
در این پست از سری پست های هک و کد وردپرس روکش می خواهیم شما را با روشی آشنا کنیم که با استفاده از آن دیگر نیازی به, به خاطر سپردن همه shortcode نخواهید داشت. کد زیر در اصل به صورت خودکار لیست تمامی شورت کدهای تعریف شده در سایت شما را در قالب یک لیست کشویی در کنار دکمه افزودن پرونده چند رسانه ای پیشفرض وردپرس (media_buttons), قرار می دهد. یکی از ویژگی های برتر این کد را می توان تشخیص خودکار تمامی کدهای کوتاه بیان کرد, به نحوی که تمامی کدهای کوتاه مربوط به قالب, افزونه ها و خود وردپرس به صورت کاملا خودکار در لیست کشویی جای می گیرند و شما می توانید تنها با یک کلیک آنها را در مطلب خود قرار دهید.
add_action('media_buttons','add_sc_select',11); function add_sc_select(){ global $shortcode_tags; /* ------------------------------------- */ /* enter names of shortcode to exclude bellow */ /* ------------------------------------- */ $exclude = array("wp_caption", "embed"); echo ' <select id="sc_select"><option>Shortcode</option>'; foreach ($shortcode_tags as $key => $val){ if(!in_array($key,$exclude)){ $shortcodes_list .= '<option value="['.$key.'][/'.$key.']">'.$key.'</option>'; } } echo $shortcodes_list; echo '</select>'; } add_action('admin_head', 'button_js'); function button_js() { echo '<script type="text/javascript"> jQuery(document).ready(function(){ jQuery("#sc_select").change(function() { send_to_editor(jQuery("#sc_select :selected").val()); return false; }); }); </script>'; }
خوب کافی است تا کد بالا را به فایل فانشکن قالب فعلی یا افزونه اختصاصی سایت خود اضافه کنید. همچنین شما می توانید با قرار دادن نام برخی از شورت کد ها در خط ۷ از نمایش در آمدن آنها در لیست کشویی جلوگیری کنید.
سلام ممنون.
چجوری میشه تمام مطالب یک post format رو لیست کرد؟ مثلا دسته بندی ها راحت میشه با لینک دسته بندی لینک کرد اما چجوری میشه تمام مطالبی که مثلا ساختار اون ها video هست رو لیست کرد؟
اگر منظورتون از post format همون Post Types هست, خوب شما باید ویژگی ایجاد آرشیو برای اون پست سفارشی را فعال کنید بعد با وارد شدن با آدرسی مثل (name.come/video) به آرشیو اون پست سفارشی دسترسی پیدا کنید.
سلام ممنون ولی چجوری؟
اگر از افزونه استفاده می کنید که خود افزونه می تونه این کار را برای شما انجام بده ولی اگر به صورت دستی پست سفارشی را ایجاد کردید می تونید از این آموزش استفاده نمایید.
سلام نه از افزونه استفاده نکردم خود قالب از اینا داره. ولی فکر میکنم من منظورم پست تایپ نیست! من منظورم قسمت «ساختار» هست که هنگام نوشتن مطلب جدید وجود داره. مثلا گزینه هاش ایناس:
ویدیو، موزیک، استاندارد، گالری و…
توی وردپرس انگلیسی این قسمت رو format نام گذاری کردن
پس منظورتون ساختار نوشته های وردپرس بود. آموزش کامل استفاده از ساختار نوشته های وردپرس را در روکش مطالعه کنید به همین مورد هم اشاره کردم.
با سلام
من وقتی کد ها را در فانکشن قرار می دهم و ذخیره می کنم
هنگامی که می خوام مثلا یک برگه رو ویرایش کنم هنگام ذخیره کرده صفحه سفید میشه؟؟؟
راهنمایی کنید
کد را تست کردم و مشکلی نداشت. شما چک کنید ببیند کدها را بین تگ باز و بسته php قرار دادید یا خیر. بعد اگر بازم مشکل بر طرف نشد کد را روی چند قالب دیگه هم امتحان کنید.
با عرض سلام و خسته نباشید ؛
قصد جسارت ندارم ولی کد اشتباه است .
دو تگ باز و بسته : رو در آخرهای کد قرار نداده بودید.
کد ها که درست هستند فقط کد باز بسته PHP در ابتدا و انتهای این کدها قرار نگرفته است. در بیشتر مطلب هم ذکر می کنم که باید این کدها حتما بین تگ باز و بسته PHP قرار گیرند اما متاسفانه در این مطلب این مورد فراموش شده است.
ضمناً یا من بلد نیستم باهاشون کار کنم با اینا خرابن .
چون یکی از این شورت کدهای قالب من : [audio url=""] است که من میخواستم با این هک درست بشه ولی درست نشد که نشد.
وارد لیست شده ولی کار نمیکنه . لطفاً آموزش بدید که چطور باید باهاش کار کنم چون هیچ جوری نمیشه .
این هک فقط کاری می کنه تا تمامی کدهای کوتاه به صورت لیستی در بخش ویرایشگر وردپرس نمایش داده بشه. نحوه استفاده از شورت کدهای قالب را باید از سازنده خود قالب درخواست کنید.